SQL Server "Null kann Null in die Spalte 'ID'" "Fehler: Eine umfassende Anleitung
Einfügen von Daten in eine SQL Server -Datenbank erfordert die Bereitstellung von Werten für alle Spalten, insbesondere für den Primärschlüssel. Wenn eine Spalte als NOT NULL
bezeichnet wird und ein Standardwert fehlt, löst der Versuch, einen NULL
einzufinden, einen Fehler aus.
Szenario: Einfügen in eine Rollentabelle
Betrachten Sie diese SQL -Anweisung:
<code class="language-sql">INSERT INTO role (name, created) VALUES ('Content Coordinator', GETDATE()), ('Content Viewer', GETDATE())</code>
Dies versucht, der Tabelle role
zwei Zeilen hinzuzufügen (enthalten name
und created
Spalten - letztere mit einem Standard -Zeitstempel). Die Primärschlüsselspalte id
wird weggelassen.
Fehleraufschlüsselung
SQL Server erfordert explizite Primärschlüsselwerte oder automatische Erzeugung. Da id
nicht angegeben ist und keine Standardeinstellung hat, weist SQL Server es NULL
zu. id
wird jedoch als NOT NULL
definiert, wodurch NULL
Einfügung verhindert wird. Die resultierende Fehlermeldung lautet:
<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>
Lösung: Automatische Inkremente zur Rettung
Die Lösung soll sicherstellen, dass id
immer einen gültigen Wert erhält. Die häufigste Methode ist die Verwendung von automatischer Inkrement:
Verwenden von SQL Server Management Studio (SSMS):
role
im Entwurfsmodus. id
und greifen Sie auf die Spalteneigenschaften zu. Dies konfiguriert id
, um für jede neue Zeile automatisch zu inkrementieren, wodurch die manuelle Primärschlüsselspezifikation beseitigt.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich den Fehler 'Null Null können in SQL Server nicht in die Spalten -ID' -Fehler einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!