IDENTITY_INSERT is already ON for table '%.*ls.%.*ls.%.*ls'. Cannot perform SET operation for table '%.*ls'.

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.

]]>

Leave a comment

Your email address will not be published.