Sql server SQL Server 2008外键确认
我们有一张有许多行的桌子。我想在这两个表之间创建外键,但是 我得到以下错误 “CMEvent”表保存成功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
“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约束的表中,例如,您试图插入引用表中不存在的值。请观看此视频