Pada dasarnya ada 2 cara berbeda untuk menyisipkan catatan tanpa mengalami kesalahan:
1) Ketika IDENTITY_INSERT diatur ke OFF. "ID" KUNCI UTAMA TIDAK HARUS MENJADI PRESENT
2) Ketika IDENTITY_INSERT diatur ON. "ID" KUNCI UTAMA HARUS MENJADI PRESENT
Seperti contoh berikut dari Tabel yang sama yang dibuat dengan KUNCI UTAMA IDENTITAS:
CREATE TABLE [dbo].[Persons] (
ID INT IDENTITY(1,1) PRIMARY KEY,
LastName VARCHAR(40) NOT NULL,
FirstName VARCHAR(40)
);
1) Dalam contoh pertama, Anda bisa menyisipkan catatan baru ke dalam tabel tanpa mendapatkan kesalahan saat IDENTITY_INSERT MATI. PRIMARY KEY "ID" TIDAK HARUS PRESENT dari "INSERT INTO" Laporan dan nilai ID yang unik akan ditambahkan secara otomatis: . Jika ID ada dari INSERT dalam kasus ini, Anda akan mendapatkan kesalahan "Tidak dapat memasukkan nilai eksplisit untuk kolom identifikasi dalam tabel ..."
SET IDENTITY_INSERT [dbo].[Persons] OFF;
INSERT INTO [dbo].[Persons] (FirstName,LastName)
VALUES ('JANE','DOE');
INSERT INTO Persons (FirstName,LastName)
VALUES ('JOE','BROWN');
OUTPUT TABEL [dbo]. [Orang] akan:
ID LastName FirstName
1 DOE Jane
2 BROWN JOE
2) Dalam contoh kedua, Anda bisa menyisipkan catatan baru ke dalam tabel tanpa mendapatkan kesalahan saat IDENTITY_INSERT dalam posisi ON. PRIMARY KEY "ID" HARUS MENJADI PRESENT dari Pernyataan "INSERT INTO" selama nilai ID belum ada : Jika ID TIDAK hadir dari INSERT dalam hal ini, Anda akan mendapatkan kesalahan "Nilai eksplisit harus ditentukan untuk tabel kolom identitas ... "
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');
OUTPUT TABEL [dbo]. [Orang] akan:
ID LastName FirstName
1 DOE Jane
2 BROWN JOE
3 BLACK JACK
5 WHITE JOHN