Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server, non è possibile inserire null nel campo della chiave primaria?

Chiavi primarie in qualsiasi i database relazionali non possono essere NULL:è una delle caratteristiche principali e fondamentali di una chiave primaria.

Vedi:SQL by Design:come scegliere la chiave primaria

AGGIORNAMENTO: ok, quindi vuoi una chiave primaria di "incremento automatico" in SQL Server.

Devi definirlo come INT IDENTITY nella tua istruzione CREATE TABLE:

 CREATE TABLE dbo.YourTable(ID INT IDENTITY, col1 INT, ..., colN INT)

e quindi quando esegui un INSERT, devi specificare esplicitamente le colonne da inserire, ma non specificare la colonna "ID" in quell'elenco, quindi SQL Server gestirà la ricerca del valore corretto automaticamente:

 INSERT INTO dbo.YourTable(col1, col2, ..., colN) -- anything **except** `ID`      
 VALUES(va1l, val2, ..., valN)

Se vuoi farlo dopo aver già creato la tabella, puoi farlo nel designer di tabelle di SQL Server Management Studio: