我们有很多行的表。我想在这两个表之间创建外键,但出现以下错误。
'CMEvent' 表保存成功;
“BaseEvent”表
无法创建关系“FK_CMEvent_Oid”。
ALTER TABLE 语句与 FOREIGN KEY 约束“FK_CMEvent_Oid”冲突。冲突发生在数据库“CMO_RestoredData”、表“dbo.BaseEvent”、列“Oid”中。`
我们有很多行的表。我想在这两个表之间创建外键,但出现以下错误。
'CMEvent' 表保存成功;
“BaseEvent”表
无法创建关系“FK_CMEvent_Oid”。
ALTER TABLE 语句与 FOREIGN KEY 约束“FK_CMEvent_Oid”冲突。冲突发生在数据库“CMO_RestoredData”、表“dbo.BaseEvent”、列“Oid”中。`
当我在 CMEvent 表中有一行在 BaseEvent 中不存在时,我能够复制此错误。
尝试运行此查询:
SELECT *
FROM CMEvent c
WHERE NOT EXISTS (
SELECT *
FROM BaseEvent
WHERE oid = c.oid )
如果您取回任何行,则必须先删除这些行,然后才能应用外键约束。
如果您需要保留这些孤立的行,您可以使用WITH NOCHECK仅将约束应用于新行。