Cannot add identity column, using the SELECT INTO statement, to table '%.*ls', which already has column '%.*ls' that inherits the identity property.

Error Message:
Msg 8108, Level 16, State 1, Line 1
Cannot add identity column, using the SELECT INTO statement, to table ‘%.*ls’, which already has column ‘%.*ls’ that inherits the identity property.

Severity level:
16.

Description:
This error message appears when you try to execute a SELECT INTO statement in which you use the IDENTITY function although the table you select from already contains a column with the IDENTITY property which the same column in the new table will inherit.

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. Every table can contain only one IDENTITY column. You must remove the IDENTITY function from the SELECT INTO statement.

Versions:
All versions of SQL Server.

Example(s):
USE tempdb;
GO
IF OBJECT_ID(‘tempdb..#t’) > 0
 DROP TABLE #t
GO
SELECT EmployeeID, IDENTITY(INT, 10, 1) AS i2
  INTO #t
  FROM Northwind.dbo.Employees
 WHERE LastName LIKE ‘B%’

Remarks:
In the above example we try to add the column i2 via the IDENTITY function, although the new table will contain a column that inherits the IDENTITY property from the Employees table. This raises the error.

]]>

Leave a comment

Your email address will not be published.