一尘不染

SQL Server 2008:表中的列与现有的主键或唯一约束不匹配

sql

我需要对SQL Server 2008数据库进行一些更改。

这需要创建一个新表,并在新表中插入一个外键,该外键引用一个已经存在的表的主键。因此,我想在新的tblTwo之间建立关系,该关系引用了tblOne的主键。

但是,当我尝试通过SQL Server Management Studio执行此操作时,出现以下错误:

表’tblOne’中的列与现有的主键或UNIQUE约束不匹配

我不太确定这是什么意思,我想知道是否有解决办法?


阅读 207

收藏
2021-03-17

共1个答案

一尘不染

这意味着尚未正确声明tblOne中的主键-您需要转到tblOne并将PRIMARY KEY约束添加回去。

如果您确定tblOne确实具有PRIMARY
KEY约束,则您的数据库中可能有多个tblOne表,它们属于不同的模式,并且FK约束中的references子句选择了错误的表。

如果有一个组合键(您的注释将表明该组合键),那么您还必须在外键引用中同时包含这两列。请注意,一个表不能有多个主键-
但是,如果它有一个复合键,您将在属于主键的每一列旁边看到一个键符号。

2021-03-17