Получение следующей ошибки: (строка 21 - инструкция объявления).Identity Insert- сообщение об ошибке
Msg 544, Level 16, State 1, Procedure insert_employee_details, Line 21
Cannot insert explicit value for identity column in table 'DB_Actions' when IDENTITY_INSERT is set to OFF.
Вот что я пробовал:
SET IDENTITY_INSERT DB_Actions ON;
Но тогда я получаю эту ошибку:
Msg 8107, Level 16, State 1, Line 31
IDENTITY_INSERT is already ON for table 'StacysDB.dbo.Employee_Details'. Cannot perform SET operation for table 'DB_Actions'.
Это не делает толку меня. Сначала это не работает, поскольку вставка идентификатора отключена. Затем, когда я пытаюсь включить его, он говорит, что он уже включен.
Я знаю, что это распространенная ошибка, поэтому я попробовал подтвержденное решение, повторно создав таблицу и установив в нее идентификационную вставку, прежде чем вставлять значения, а затем вернуться к выключению и вставить значения, но я получил ту же ошибку (Msg 8107).
Спасибо за любую помощь.
--1
--CREATE TABLE DB_Actions
--(
--Id numeric(5,0) IDENTITY(1,1) PRIMARY KEY,
--Table_Name varchar(20),
--Action_Name varchar(10),
--User_Name varchar(50),
--Done_ON datetime,
--Record_Id numeric(5,0)
--);
--2
--INSERT TRIGGER
--CREATE TRIGGER insert_employee_details
--ON Employee_Details
--FOR INSERT
--AS
--DECLARE @id int, @name varchar(20)
--SELECT @id = Emp_Id, @name = Emp_First_Name FROM inserted
--INSERT INTO DB_Actions(Id, Table_Name, Action_Name, User_Name,
--Done_ON, Record_Id)
--VALUES(@id,
-- 'Employee_Details',
-- 'INSERT',
-- @name,
-- getdate(),
-- @id
--);
INSERT INTO Employee_Details(Emp_Id, Emp_First_Name, Emp_Middle_Name, Emp_Last_Name, Emp_Address1, Emp_Address2, Emp_Country_Id, Emp_State_Id, Emp_City_Id, Emp_Zip, Emp_Mobile, Emp_Gender, Desig_Id, Emp_DOB, Emp_JoinDate, Emp_Active)
VALUES(9000, 'A', 'B', 'C', 'D', 'E', 2, 3, 4, 44444, 4444444, 1, 3333, getdate(), getdate(), 0);
Я также прочитал, что отключение и повторное подключение могут работать. но это не так. –
Сделав немного шаг назад, вам действительно нужно, чтобы 'Id' был колонком' IDENTITY' в первую очередь? Это похоже на таблицу аудита какого-то типа, так почему бы просто не сделать ее простым столбцом «INT»? – DavidG
он должен быть идентификационным и первичным ключом. Ive попытался исключить столбец Идентификатор в моей инструкции вставки, но не смог заставить его работать –