8101: Ein expliziter Wert für die Identitätsspalte in der '%1!'-Tabelle kann nur angegeben werden
Fehlermeldung:
Meldung 8101, Ebene 16, Status 1, Zeile 1
Ein expliziter Wert für die Identitätsspalte in der '%1!'-Tabelle kann nur angegeben werden, wenn eine Spaltenliste verwendet wird und IDENTITY_INSERT auf ON festgelegt ist.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung taucht auf, wenn versucht wird, explizit eine Wert in eine IDENTITY Spalte einzugeben, ohne aber eine Spalteliste im INSERT Statement angegeben zu haben und die SET IDENTITY_INSERT Einstellung auf ON gesetzt zu haben.
Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.
Behebung:
Fehler der Ebene 16 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. Die SET IDENTITY_INSERT Einstellung muß auf ON für diese Tabelle gesetzt werden und das INSERT Statement muß eine Spaltenliste enthalten.
Versionen:
Alle Versionen von SQL Server.
Beispiel(e):
USE tempDB
GO
CREATE TABLE t
(
i1 INT IDENTITY
)
GO
INSERT INTO t SELECT -1
DROP TABLE t
GO
Anmerkungen:
Um den obigen Batch fehlerfrei ausführen zu können, muß diese folgendermaßen umgeschrieben werden:
USE tempDB
GO
CREATE TABLE t
(
i1 INT IDENTITY
)
GO
SET IDENTITY_INSERT t ON
INSERT INTO t(i1) SELECT -1
SET IDENTITY_INSERT t OFF
DROP TABLE t
GO
Gibt man nur die Spaltenliste beim INSERT vor, ohne die SET IDENTITY_INSERT Einstellung zu setzen, erhält man den Fehler 544.