There are no primary or candidate keys in the referenced table ‘%.*ls’ that match the referencing column list in the foreign key ‘%.*ls’.

Error Message:
Msg 1776, Level 16, State 0, Line 1
There are no primary or candidate keys in the referenced table ‘%.*ls’ that match the referencing column list in the foreign key ‘%.*ls’.

Severity level:
16.

Description:
This error message appears when you try to create a FOREIGN KEY constraint for a table that references another table for which no PRIMARY KEY or candidate key exist.

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. FOREIGN KEY constraints can only reference tables that do have either a PRIMARY KEY constraint defined or a candidate key exists.

Versions:
All versions of SQL Server.

Example(s):
USE tempdb;
GO
IF OBJECT_ID(‘tempdb..t’) > 0
 DROP TABLE t
GO
CREATE TABLE t
(
 c1 INT
 CONSTRAINT FK_t_t1_c1 FOREIGN KEY REFERENCES t(c1)
)
GO

Remarks:
In the above example we try to create a FOREIGN KEY constraint for the table t that references itself. Because no PRIMARY KEY constraint and no cnadidate key exist or the table t, the error is raised.




Related Articles :

  • No Related Articles Found

No comments yet... Be the first to leave a reply!

Software Reviews | Book Reviews | FAQs | Tips | Articles | Performance Tuning | Audit | BI | Clustering | Developer | Reporting | DBA | ASP.NET Ado | Views tips | | Developer FAQs | Replication Tips | OS Tips | Misc Tips | Index Tuning Tips | Hints Tips | High Availability Tips | Hardware Tips | ETL Tips | Components Tips | Configuration Tips | App Dev Tips | OLAP Tips | Admin Tips | Software Reviews | Error | Clustering FAQs | Performance Tuning FAQs | DBA FAQs |