More than one key specified in column level %ls constraint, table '%.*ls'.

Error Message:
Msg 8140, Level 16, State 0, Line 1
More than one key specified in column level %ls constraint, table ‘%.*ls’.

Severity level:
16.

Description:
This error message appears when you try to create a column level constraint with a unequal number of columns on both sides of the constraint.

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. You must specify the same number of columns on both sides of the constraint.

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
CREATE TABLE t
(
 c1 INT,
 c2 INT
)
GO
CREATE TABLE t1
(
 c2 INT
 CONSTRAINT FK_t1_t FOREIGN KEY REFERENCES t(c1, c2)
)

Remarks:
In the above example we try to create a FOREIGN KEY constraint on the column c2 of the table t1. This column references more than one column in table t. This raises the error.

]]>

Leave a comment

Your email address will not be published.