Cascading foreign key '%.*ls' cannot be created where the referencing column '%.*ls.%.*ls' is an identity column.

Error Message:
Msg 1788, Level 16, State 0, Line 1
Cascading foreign key ‘%.*ls’ cannot be created where the referencing column ‘%.*ls.%.*ls’ is an identity column.

Severity level:
16.

Description:
This error message appears when you try to create a cascading referential integrity operation for a column for which the IDENTITY property was created.

Consequences:
The T-SQL statement can be parsed, but causes the error at runtime.

Resolution:
Error 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. Cascading referential integrity operations cannot be created for columns with that property.

Versions:
All versions of SQL Server.

Example(s):
USE tempdb;
IF OBJECT_ID(‘t’, ‘table’) > 0
 DROP TABLE t
GO
IF OBJECT_ID(‘t1’, ‘table’) > 0
 DROP TABLE t1
GO
CREATE TABLE t
(
 c1 INT PRIMARY KEY
)
GO
CREATE TABLE t1
(
 c2 INT IDENTITY
 CONSTRAINT FK_t1_t
 FOREIGN KEY REFERENCES t(c1)
 ON DELETE CASCADE
)

Remarks:
In the above example we try to create the referential integrity operation ON DELETE CASCADE for a column with the IDENTITY property. This raises the error.

]]>

Leave a comment

Your email address will not be published.