В основному є два різних способи ВСТАВИТИ записи без помилки:
1) Якщо значення IDENTITY_INSERT встановлено виключено. ОСНОВНИЙ КЛЮЧ "ІД" НЕ МОЖЕ БУТИ ПРИСТУПАТИ
2) Коли значення IDENTITY_INSERT увімкнено. ПЕРШИЙ КЛЮЧ "ІД" ОБОВ'ЯЗКОВО бути присутнім
Відповідно до наступного прикладу з тієї ж таблиці, створеної за допомогою ІДЕНТИЧНОСТІ первинного ключа:
CREATE TABLE [dbo].[Persons] (
ID INT IDENTITY(1,1) PRIMARY KEY,
LastName VARCHAR(40) NOT NULL,
FirstName VARCHAR(40)
);
1) У першому прикладі ви можете вставити нові записи в таблицю, не отримуючи помилки, коли IDENTITY_INSERT вимкнено. ПЕРВИННИЙ КЛЮЧ «ВД» не повинен бути присутнім від звітності «Вставити в» і унікальне значення ідентифікатора буде додано автоматично: . Якщо в цьому випадку ідентифікатор присутній від INSERT, ви отримаєте помилку "Неможливо вставити явне значення для ідентифікаційного стовпця в таблицю ..."
SET IDENTITY_INSERT [dbo].[Persons] OFF;
INSERT INTO [dbo].[Persons] (FirstName,LastName)
VALUES ('JANE','DOE');
INSERT INTO Persons (FirstName,LastName)
VALUES ('JOE','BROWN');
ВИХІД ТАБЛИЦІ [dbo]. [Особи] буде:
ID LastName FirstName
1 DOE Jane
2 BROWN JOE
2) У другому прикладі ви можете вставити нові записи в таблицю, не отримуючи помилки, коли IDENTITY_INSERT увімкнено. ПЕРШИЙ КЛЮЧ "ІД" ОБОВ'ЯЗКОВО бути присутнім у виписках "ВСТАВКА ДО" , якщо значення ідентифікатора вже не існує : Якщо в цьому випадку ідентифікатор НЕ присутній від ВСТАВКИ, ви отримаєте помилку "Явне значення повинно бути вказано для таблиці стовпців ідентичності ... "
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');
ВИХІД ТАБЛИЦІ [dbo]. [Особи] буде:
ID LastName FirstName
1 DOE Jane
2 BROWN JOE
3 BLACK JACK
5 WHITE JOHN