Temelde kayıtları hatasız olarak eklemenin 2 farklı yolu vardır:
1) IDENTITY_INSERT KAPALI olarak ayarlandığında. BİRİNCİL ANAHTAR "ID" OLMAMALIDIR
2) IDENTITY_INSERT AÇIK olarak ayarlandığında. BİRİNCİL ANAHTAR "ID" OLMALIDIR
IDENTITY PRIMARY KEY ile oluşturulan aynı Tablodaki aşağıdaki örneğe göre:
CREATE TABLE [dbo].[Persons] (
ID INT IDENTITY(1,1) PRIMARY KEY,
LastName VARCHAR(40) NOT NULL,
FirstName VARCHAR(40)
);
1) İlk örnekte, IDENTITY_INSERT KAPALI olduğunda hata almadan tabloya yeni kayıtlar ekleyebilirsiniz. PRIMARY KEY "ID" Mevcut olmamalıdır "INSERT INTO" Tablolara ve benzersiz bir kimlik değeri otomatik olarak eklenecek: . Bu durumda kimlik INSERT'te varsa, "Tablodaki tanımlama sütunu için açık değer eklenemez ..." hatasını alırsınız.
SET IDENTITY_INSERT [dbo].[Persons] OFF;
INSERT INTO [dbo].[Persons] (FirstName,LastName)
VALUES ('JANE','DOE');
INSERT INTO Persons (FirstName,LastName)
VALUES ('JOE','BROWN');
TABLO ÇIKIŞI [dbo]. [Kişiler]:
ID LastName FirstName
1 DOE Jane
2 BROWN JOE
2) İkinci örnekte, IDENTITY_INSERT AÇIK olduğunda hata almadan tabloya yeni kayıtlar ekleyebilirsiniz. PRİMER ANAHTAR "ID" , ID değeri mevcut olmadığı sürece "INSERT INTO" Deyimlerinden SUNULMALIDIR: Bu durumda ID INSERT'de mevcut DEĞİLSE, "Açık değer kimlik sütun tablosu için belirtildi ... "
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');
TABLO ÇIKIŞI [dbo]. [Kişiler]:
ID LastName FirstName
1 DOE Jane
2 BROWN JOE
3 BLACK JACK
5 WHITE JOHN