SQL Server Anweisung Fehler Fehler: NULL
Wert in nicht-nullbarer Spalte 'ID'
Die SQL -Anweisung:
<code class="language-sql">INSERT INTO role (name, created) VALUES ('Content Coordinator', GETDATE()), ('Content Viewer', GETDATE())</code>
führt zum Fehler:
<code>Msg 515, Level 16, State 2, Line 1 Cannot insert the value NULL into column 'id', table 'CMT_DEV.dbo.role'; column does not allow nulls. INSERT fails. The statement has been terminated.</code>
Dieser Fehler entsteht, weil die Spalte id
als NOT NULL
definiert ist, aber die INSERT
-Anweisung gibt keinen Wert dafür an. SQL Server stellt standardmäßig NULL
aus, wenn ein Wert für eine Spalte nicht bereitgestellt wird, was zum Einschränkungsverletzung führt.
Hier erfahren Sie, wie Sie dies beheben:
Setzen Sie explizit id
: Geben Sie einen Wert für die Spalte id
in Ihrer INSERT
-Anweisung an. Dies ist nur praktisch, wenn Sie eine Möglichkeit haben, die nächste verfügbare ID zu bestimmen (z. B. Sie manuell verwalten IDs).
Verwenden Sie eine automatische Inkrementierungsspalte: Die beste Lösung besteht darin, die Spalte id
zu einer automatischen Inkrementierungsspalte zu machen. Dies generiert automatisch eindeutige IDs für jede neue Zeile. In SQL Server Management Studio (SSMS):
id
aus. Is Identity
auf Yes
und Identity Increment
auf 1
. (Sie können bei Bedarf Identity Increment
einstellen.) Nach der Implementierung der automatischen Inkremente funktioniert Ihre INSERT
-Antage korrekt, ohne den Wert id
anzugeben. Die Datenbank wird die ID -Generierung automatisch verarbeitet.
Das obige ist der detaillierte Inhalt vonWarum fehlschlägt meine SQL Server -Einfügeanweisung mit 'Null nicht in die Spalte 'ID''?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!