Fehlerbehebung beim Einfügen von Identitätsspalten in SQL Server
Sind Probleme beim Einfügen von Werten in eine Identitätsspalte in SQL Server aufgetreten? Dieser Leitfaden erklärt den häufigsten Fehler und bietet eine einfache Lösung.
Das Problem:
Der Versuch, eine Zeile mit einem angegebenen Wert für eine Identitätsspalte einzufügen, führt häufig zu folgendem Fehler:
Server: Msg 544, Ebene 16, Status 1, Zeile 1
Der explizite Wert für die Identitätsspalte in der Tabelle „table“ kann nicht eingefügt werden, wenn IDENTITY_INSERT auf OFF gesetzt ist.
Den Fehler verstehen:
Identitätsspalten generieren automatisch eindeutige sequentielle Werte. Der Fehler tritt auf, weil IDENTITY_INSERT
standardmäßig auf OFF
gesetzt ist. Diese Einstellung verhindert die direkte Zuweisung von Werten zu Identitätsspalten und stellt sicher, dass die Datenbank die Kontrolle über die Reihenfolge behält.
Die Lösung:
Um einen bestimmten Wert in eine Identitätsspalte einzufügen, müssen Sie dieses Standardverhalten vorübergehend außer Kraft setzen. Befolgen Sie diese Schritte:
IDENTITY_INSERT
: Verwenden Sie diesen Befehl, um das explizite Einfügen von Werten vorübergehend zuzulassen:SET IDENTITY_INSERT Table1 ON
INSERT
-Anweisung angeben:INSERT INTO Table1 (OperationID, OpDescription, FilterID)
VALUES (20, 'Hierarchy Update', 1)
IDENTITY_INSERT
: Deaktivieren Sie nach dem Einfügen sofort IDENTITY_INSERT
, um das Standardverhalten wiederherzustellen:SET IDENTITY_INSERT Table1 OFF
Mit diesem Prozess können Sie Identitätsspaltenwerte unter bestimmten Umständen verwalten und gleichzeitig die Datenintegrität wahren. Denken Sie daran, IDENTITY_INSERT
immer zu deaktivieren, sobald das Einfügen abgeschlossen ist.
Das obige ist der detaillierte Inhalt vonWarum kann ich keinen Wert in meine Identitätsspalte einfügen und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!