Первичные ключи в любой реляционной базе данных не могут иметь значение NULL - это одна из основных, фундаментальных характеристик первичного ключа.
См .: SQL by Design: как выбрать первичный ключ
Никогда Нуль
Никакое значение первичного ключа не может быть нулевым, и вы ничего не можете сделать для
сделать первичный ключ пустым. Это
неприкосновенное правило реляционного
модель, поддерживаемая ANSI , из
система управления реляционными базами данных
(RDBMS) и SQL Server.
ОБНОВЛЕНИЕ: ОК, так что вам нужен первичный ключ с автоинкрементом в SQL Server.
Вам необходимо определить его как INT IDENTITY в вашем операторе CREATE TABLE:
CREATE TABLE dbo.YourTable(ID INT IDENTITY, col1 INT, ..., colN INT)
и затем, когда вы делаете INSERT, вам нужно явно указать столбцы для вставки, но просто не указывайте столбец «ID» в этом списке - тогда SQL Server автоматически обработает поиск нужного значения:
INSERT INTO dbo.YourTable(col1, col2, ..., colN) -- anything **except** `ID`
VALUES(va1l, val2, ..., valN)
Если вы хотите сделать это после того, как уже создали таблицу, вы можете сделать это в конструкторе таблиц SQL Server Management Studio: