我需要对 SQL Server 2008 数据库进行一些更改。
这需要创建一个新表,并在新表中插入一个引用现有表的主键的外键。所以我想在我的新 tblTwo 之间建立一个关系,它引用了 tblOne 的主键。
但是,当我尝试执行此操作(通过 SQL Server Management Studio)时,出现以下错误:
表 ‘tblOne’ 中的列与现有主键或 UNIQUE 约束不匹配
我不太确定这意味着什么,我想知道是否有任何解决方法?
原文由 109221793 发布,翻译遵循 CC BY-SA 4.0 许可协议
这意味着 tblOne 中的主键尚未正确声明 - 您需要转到 tblOne 并将 PRIMARY KEY 约束添加回它。
如果您确定 tblOne 确实具有 PRIMARY KEY 约束,那么您的数据库中可能有多个 tblOne 表,属于不同的模式,并且您的 FK 约束中的引用子句选择了错误的表。
如果有一个复合键(您的评论会指出),那么您还必须在外键引用中包含这两列。请注意,一个表不能有多个主键 - 但如果它有一个复合键,您会在作为主键一部分的每一列旁边看到一个键符号。