Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server 2008外键确认_Sql Server_Sql Server 2008_Foreign Key Relationship - Fatal编程技术网

Sql server SQL Server 2008外键确认

Sql server SQL Server 2008外键确认,sql-server,sql-server-2008,foreign-key-relationship,Sql Server,Sql Server 2008,Foreign Key Relationship,我们有一张有许多行的桌子。我想在这两个表之间创建外键,但是 我得到以下错误 “CMEvent”表保存成功 “BaseEvent”表 无法创建关系“FK\u CMU事件\u Oid”。 ALTER TABLE语句与外键约束“FK_CMEvent_Oid”冲突。冲突发生在数据库“CMO_RestoredData”、表“dbo.BaseEvent”和列“Oid”中` 当我在CMEvent表中有一行BaseEvent中不存在时,我能够复制此错误 尝试运行此查询: SELECT * FROM CMEve

我们有一张有许多行的桌子。我想在这两个表之间创建外键,但是 我得到以下错误

“CMEvent”表保存成功
“BaseEvent”表
无法创建关系“FK\u CMU事件\u Oid”。
ALTER TABLE语句与外键约束“FK_CMEvent_Oid”冲突。冲突发生在数据库“CMO_RestoredData”、表“dbo.BaseEvent”和列“Oid”中`


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

尝试运行此查询:

SELECT * 
FROM CMEvent c
WHERE NOT EXISTS (
  SELECT * 
  FROM BaseEvent
  WHERE oid = c.oid ) 
如果返回任何行,则必须先删除这些行,然后才能应用外键约束


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

能否显示两个表的完整定义?您是否已验证子表仅包含父表中实际存在的ID?这是一个模糊的问题,但通常意味着您正在尝试添加一个违反约束的外键,因为第二个表不包含必需的关系。发布更多详细信息,有人可能会帮助您查询以查找丢失的数据。这是我的BaseEvent表的一部分这是我的CMEvent表,您需要向我们展示代码并解释您正在执行的操作。错误消息仅表示您试图将某些数据插入到违反FK约束的表中,例如,您试图插入引用表中不存在的值。请观看此视频