SQL Server 2000 - varchar字段的默认值

时间:2009-08-12 23:20:51

标签: sql sql-server sql-server-2000

我有一个sql server nvarchar字段,其中包含空字符串的“默认值或绑定”。它也恰好是一个非空字段。

这是否意味着没有默认值,或者它是没有字符的字符串的默认值。

如果我没有插入值,是插入空字符串还是失败并显示“not null”错误?

4 个答案:

答案 0 :(得分:3)

默认为空(空)字符串。

如果您没有提供值,插入将成功,值将为空,不为空。

答案 1 :(得分:3)

与(假设数据是相关的col)相同:

create table #t (id int, data varchar(100) not null default(''))

所以:

insert into #t (id) values (1) 
insert into #t (id,data) values (2,default) 
insert into #t (id,data) values (3, 'allowed') 

select * from #t 

将返回

1
2
3 allowed 

和..

insert into #t (id,data) values (1, null) 
-- will error 

答案 2 :(得分:2)

如果您有一个真正的空字符串作为默认值,那么它将使用0长度字符串自动填充。

你应该小心确保它是一个0长度的字符串,但不是没有。例如,如果您在表格构建器gui中查找SSMS并且它显示“默认值或绑定”的空白,则表示没有默认值,如果未填充插入,则插入将失败。如果你想让它有一个0长度的字符串,用''填充它(两个单引号,中间没有任何内容。)

答案 3 :(得分:0)

列的默认值就是 - 当您不为列提供该值时,sql server将放置该值。列中的值将为空字符串。不会发生非null错误