无法将外键添加到表

时间:2016-01-11 19:37:49

标签: sql sql-server foreign-keys

我检查过这两个表都没有任何外键。我检查过他们都有类型uniqueidentifier的Id。我吟唱剧本并得到这个错误。

ALTER TABLE [dbo].[Records] 
ADD CONSTRAINT [FK_dbo.Records_dbo.Users_UserId] 
FOREIGN KEY ([UserId]) 
REFERENCES [dbo].[Users] ([Id]) 
--ON DELETE CASCADE
  

ALTER TABLE语句与FOREIGN KEY约束冲突" FK_dbo.Records_dbo.Users_UserId"。冲突发生在数据库" MyDb",table" dbo.Users",column' Id'。

不确定如何对其进行故障排除...使用和不使用级联进行测试...

2 个答案:

答案 0 :(得分:2)

很可能您在Records表中有一个User表中不存在的UserId。如果您一直使用0或其他值作为“默认”值,这肯定会发生。

答案 1 :(得分:2)

必须与现有数据有关。必须有一些与外键创建冲突的记录。尝试在空模式上创建密钥以查看它是否有效。如果需要该数据,请使用WITH NOCHECK在创建外键时不检查现有行。