Обязательно ли добавлять NOT NULL при определении столбца с ключевым словом IDENTITY (1, 1)? - PullRequest
1 голос
/ 06 ноября 2011

Как я понимаю, IDENTITY (1, 1) означает, что мы не будем предоставлять никаких данных для этого столбца.Sql Server будет добавлять каждый раз 1 к значению ранее созданной строки.

почему бы не это

CREATE TABLE MyTable
(
  MyTableID INT IDENTITY(1, 1) PRIMARY KEY  
)

, а скорее это

CREATE TABLE MyTable
(
  MyTableID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY 
)

Почему я должендобавить NOT NULL к определению такого столбца?Это означает, что Sql Server может генерировать значения NULL ??

Спасибо за помощь

Ответы [ 2 ]

3 голосов
/ 06 ноября 2011

Это необязательно в этом случае.

Независимо от значения ANSI_NULL_DFLT_ON / ANSI_NULL_DFLT_OFF столбец, который будет добавлен, не будет NULL -поддерживаемым.

Вы получите сообщение об ошибке, если попытаетесь явно указать столбец IDENTITY (или один, участвующий в ограничении первичного ключа), чтобы разрешить NULL.

2 голосов
/ 06 ноября 2011

Нет; при указании столбца в качестве ПЕРВИЧНОГО КЛЮЧА (в определении) или ИДЕНТИЧНОСТИ указывать NOT NULL не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...