3

我们有很多行的表。我想在这两个表之间创建外键,但出现以下错误。

'CMEvent' 表保存成功;
“BaseEvent”表
无法创建关系“FK_CMEvent_Oid”。
ALTER TABLE 语句与 FOREIGN KEY 约束“FK_CMEvent_Oid”冲突。冲突发生在数据库“CMO_RestoredData”、表“dbo.BaseEvent”、列“Oid”中。`

4

1 回答 1

0

当我在 CMEvent 表中有一行在 BaseEvent 中不存在时,我能够复制此错误。

尝试运行此查询:

SELECT * 
FROM CMEvent c
WHERE NOT EXISTS (
  SELECT * 
  FROM BaseEvent
  WHERE oid = c.oid ) 

如果您取回任何行,则必须先删除这些行,然后才能应用外键约束。

如果您需要保留这些孤立的行,您可以使用WITH NOCHECK仅将约束应用于新行。

于 2012-12-23T04:32:39.190 回答