Grundsätzlich gibt es zwei verschiedene Möglichkeiten, Datensätze ohne Fehler einzufügen:
1) Wenn IDENTITY_INSERT auf OFF gesetzt ist. Die PRIMARY KEY "ID" darf nicht vorhanden sein
2) Wenn IDENTITY_INSERT auf ON gesetzt ist. Die PRIMARY KEY "ID" muss vorhanden sein
Gemäß dem folgenden Beispiel aus derselben Tabelle, die mit einem IDENTITY PRIMARY KEY erstellt wurde:
CREATE TABLE [dbo].[Persons] (
ID INT IDENTITY(1,1) PRIMARY KEY,
LastName VARCHAR(40) NOT NULL,
FirstName VARCHAR(40)
);
1) Im ersten Beispiel können Sie neue Datensätze in die Tabelle einfügen, ohne einen Fehler zu erhalten, wenn IDENTITY_INSERT ausgeschaltet ist. Die PRIMARY KEY "ID" DARF NICHT AUS DEN "INSERT INTO" -Anweisungen vorhanden sein, und ein eindeutiger ID-Wert wird automatisch hinzugefügt : . Wenn die ID in diesem Fall vom INSERT vorhanden ist, wird die Fehlermeldung "Expliziter Wert für Identifizierungsspalte in Tabelle kann nicht eingefügt werden ..." nicht angezeigt.
SET IDENTITY_INSERT [dbo].[Persons] OFF;
INSERT INTO [dbo].[Persons] (FirstName,LastName)
VALUES ('JANE','DOE');
INSERT INTO Persons (FirstName,LastName)
VALUES ('JOE','BROWN');
AUSGABE VON TABELLE [dbo]. [Personen] sind:
ID LastName FirstName
1 DOE Jane
2 BROWN JOE
2) Im zweiten Beispiel können Sie neue Datensätze in die Tabelle einfügen, ohne dass ein Fehler auftritt, wenn IDENTITY_INSERT aktiviert ist. Der PRIMARY KEY "ID" MUSS in den "INSERT INTO" -Anweisungen vorhanden sein , solange der ID-Wert noch nicht vorhanden ist : Wenn die ID in diesem Fall vom INSERT NICHT vorhanden ist, wird der Fehler "Expliziter Wert muss sein" angezeigt angegeben für Identitätsspaltentabelle ... "
SET IDENTITY_INSERT [dbo].[Persons] ON;
INSERT INTO [dbo].[Persons] (ID,FirstName,LastName)
VALUES (5,'JOHN','WHITE');
INSERT INTO [dbo].[Persons] (ID,FirstName,LastName)
VALUES (3,'JACK','BLACK');
AUSGABE VON TABELLE [dbo]. [Personen] sind:
ID LastName FirstName
1 DOE Jane
2 BROWN JOE
3 BLACK JACK
5 WHITE JOHN