SQL Server 2008外键冲突

时间:2012-12-22 08:59:58

标签: sql-server sql-server-2008 foreign-key-relationship

我们有多行的表。我想在这两个表之间创建外键但是 我收到以下错误。

  

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

1 个答案:

答案 0 :(得分:0)

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

尝试运行此查询:

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

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

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