Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server, não pode inserir null no campo de chave primária?


Chaves primárias em qualquer banco de dados relacional não pode ser NULL - é uma das características principais e fundamentais de uma chave primária.

Veja:SQL by Design:como escolher a chave primária

ATUALIZAÇÃO: ok, então você quer uma chave primária de "incremento automático" no SQL Server.

Você precisa defini-lo como um INT IDENTITY em sua instrução CREATE TABLE:
 CREATE TABLE dbo.YourTable(ID INT IDENTITY, col1 INT, ..., colN INT)

e então, quando você faz um INSERT, você precisa especificar explicitamente as colunas a serem inseridas, mas apenas não especifique a coluna "ID" nessa lista - o SQL Server lidará com a localização do valor apropriado automaticamente:
 INSERT INTO dbo.YourTable(col1, col2, ..., colN) -- anything **except** `ID`      
 VALUES(va1l, val2, ..., valN)

Se você quiser fazer isso depois de já ter criado a tabela, pode fazê-lo no designer de tabelas do SQL Server Management Studio: