sql-server - SQL Server 2008 外键冲突

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

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

'CMEvent' table saved successfully;
'BaseEvent' table
Unable to create relationship 'FK_CMEvent_Oid'.
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_CMEvent_Oid". The conflict occurred in database "CMO_RestoredData", table "dbo.BaseEvent", column 'Oid'.`

最佳答案

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

尝试运行这个查询:

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

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

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

关于sql-server - SQL Server 2008 外键冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001486/

相关文章:

sql - 使用sql查询找出日夜数

sql-server - 无法连接到 UserPC\SQLExpress

sql-server - 使用 dtexec 执行远程 ssis 包

sql - 使用 SQL Server 正则表达式过滤包含垃圾字符的行

ServiceStack Ormlite : Circular reference between parent and child tables prevents foreign key creation

mysql - 插入后 MySQL 出现 CDbCommand 失败错误

c# - 导航对象为空;为什么?

mysql - UPDATE FROM WHERE 子查询 SQL Server

sql-server - SSIS 中 bool 值的问题

sql-server - 如何在 ROW_NUMBER() 函数和 Union 中获取 Filter 记录?