Error Message:
Msg 8107, Level 16, State 1, Line 1
IDENTITY_INSERT is already ON for table ‘%.*ls.%.*ls.%.*ls’. Cannot perform SET operation for table ‘%.*ls’.
Severity level:
16.
Description:
This error message appears when you try to set IDENTITY_INSERT to on, but this setting is already activated.
Consequences:
The T-SQL statement can be parsed, but causes the error at runtime.
Resolution:
Errors of the Severity Level 16 are generated by the user and can be fixed by the SQL Server user. The statement cannot be executed this way. IDENTITY_INSERT can only be set to on for one table in a database at a time. It must be turned off, before it can be turned on again for a different table.
Versions:
All versions of SQL Server.
Example(s):
USE tempdb;
GO
IF OBJECT_ID(‘tempdb..#t’) > 0
DROP TABLE #t, #t1
GO
CREATE TABLE #t
(
id INT IDENTITY
)
GO
CREATE TABLE #t1
(
id INT IDENTITY
)
GO
SET IDENTITY_INSERT #t ON
SET IDENTITY_INSERT #t1 ON
Remarks:
In the above example we try to set IDENTITY_INSERT to on for the table #t and #t1. This raises the error.