Heim > Datenbank > MySQL-Tutorial > Warum fehlschlägt meine SQL Server -Einfügeanweisung mit 'Null nicht in die Spalte 'ID''?

Warum fehlschlägt meine SQL Server -Einfügeanweisung mit 'Null nicht in die Spalte 'ID''?

Barbara Streisand
Freigeben: 2025-01-24 11:22:10
Original
657 Leute haben es durchsucht

Why Does My SQL Server INSERT Statement Fail with

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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):

    1. Öffnen Sie die Tabelle im Designmodus.
    2. Wählen Sie die Spalte id aus.
    3. In den Spalteneigenschaften "Identitätsspezifikation" finden.
    4. setzen Sie 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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage