Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server, kann keine Null in das Primärschlüsselfeld einfügen?

Primärschlüssel in beliebig relationale Datenbanken dürfen nicht NULL sein - dies ist eines der wichtigsten und grundlegenden Merkmale eines Primärschlüssels.

Siehe:SQL by Design:wie man den Primärschlüssel wählt

AKTUALISIERUNG: ok, Sie wollen also einen "Auto-Increment"-Primärschlüssel in SQL Server.

Sie müssen es als INT IDENTITY in Ihrer CREATE TABLE-Anweisung definieren:

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

und wenn Sie dann ein INSERT ausführen, müssen Sie die einzufügenden Spalten explizit angeben, aber geben Sie einfach nicht die Spalte "ID" in dieser Liste an - dann findet SQL Server automatisch den richtigen Wert:

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

Wenn Sie dies tun möchten, nachdem Sie die Tabelle bereits erstellt haben, können Sie dies im Tabellen-Designer von SQL Server Management Studio tun: