2009-08-12 1 views
4

У меня есть поле nvarchar sql server с «значением по умолчанию или привязкой» пустой строки. Это также не пустое поле.SQL Server 2000 - Значение по умолчанию для полей varchar

Означает ли это, что нет значения по умолчанию или что это по умолчанию строка, в которой нет символов.

Если я не вставляю значение, оно будет вставляться с пустой строкой или сбой с ошибкой «не null»?

ответ

3

По умолчанию пустая (пустая) строка.

Если вы не указали значение, вставка будет успешной, и значение будет пустым, а не нулевым.

1

Если у вас есть истинная пустая строка по умолчанию, она будет автопопуляцией с длиной строки 0.

Вы должны быть осторожны, чтобы убедиться, что это длина длины и ничто. Если вы, например, смотрите в builder bui для SSMS, и он показывает пробел для «Значение по умолчанию или привязка», это означает, что значение по умолчанию отсутствует, и вставка не будет работать, если она не заполнена. Если вы хотите, чтобы у него была строка длины 0, заполните ее «'(две одинарные кавычки вместе ни с чем между ними.)

0

Значение по умолчанию для столбца - это то, что - сервер sql поставит это значение, когда вы не поставьте один для столбца. Значение в столбце будет пустой строкой. Не нулевой ошибки не будет

3

его же, как (предполагается, что данные являются цв в вопросе):

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