2011-11-03 60 views
2

我有一個要求將字面值'NULL'作爲默認值插入nvarchar列。但是,當我插入記錄時,默認情況下是以db NULL而不是文字'NULL'的形式出現。有人能告訴我我要去哪裏嗎?如何將值'NULL'輸入到SQL Server的nvarchar列中?

+1

順便說一句,將列默認爲「NULL」而不是「NULL」的目的是什麼?這聽起來像是一個值得懷疑的決定。 –

+0

@djacobson - 我們發送'NULL'的要求是因爲我們發送的數據被另一個需要看到文本NULL而不是空標籤的應用程序使用。 – VKarthik

+0

啊,你能做什麼?很公平。 :S –

回答

3

注意引號:

INSERT INTO yourtable (varcharfield) VALUES ('NULL'); // string null 
INSERT INTO yourtable (varcharfield) VALUES (NULL); // actual null 
+3

我認爲OP希望字段的默認值是字符串'NULL',而不是隻在'INSERT'語句中插入該值。 – 2011-11-03 19:03:04

5

所以,你要「空」的實際要插入的字符串?嘗試是這樣的:

create table NullTable 
(
    nvarchar(100) not null default 'NULL', 
    .... -- your other fields 
) 

編輯:這裏是一個完整的解決方案

create table InsertNull 
(
    Nullfield nvarchar(100) not null default 'NULL', 
    someint int not null 
) 
go 

insert into insertnull(someint) 
select 20 

select * 
from InsertNull 
+0

鯊魚 - 我有一張桌子有相同的設置。在同一個例子中,我們的表格包含兩個字段field1,默認值爲'NULL',field2 INT。如果我運行查詢說 - 插入到空表(field1)選擇20然後field1仍然顯示爲NULL DB值 – VKarthik

+0

@VKarthik檢查我的編輯。我只是運行這個,它在結果查詢中顯示字符串'NULL'。 – 2011-11-03 19:43:51

+0

@VKarthik你是否希望在列中存儲單引號?因爲鯊魚有什麼默認的字符串是NULL而不是DB'NULL'。 – norlando

1

如果在代碼中設置默認,而不是設計師應該工作。

ALTER TABLE [myTable] ADD DEFAULT ('NULL') FOR [TextColumn] 
相關問題