SQL与FOREIGN KEY约束冲突

Bre*_*ann 25 sql sql-server-2005

我试图在我的数据库上运行一些更新脚本,我收到以下错误:

ALTER TABLE语句与FOREIGN KEY约束"FK_UPSELL_DT_AMRNO_AFMKTG_REF"冲突.冲突发生在数据库"ECOMVER",表"dbo.AFFILIATE_MKTG_REF",列'AMRNO'中.

我正在运行以下脚本:

ALTER TABLE [dbo].[UPSELL_DATA]  WITH CHECK ADD 
        CONSTRAINT [FK_UPSELL_DT_AMRNO_AFMKTG_REF] FOREIGN KEY
        (
          [AMRNO]
        ) REFERENCES [dbo].[AFFILIATE_MKTG_REF] (
          [AMRNO]
        )
GO
Run Code Online (Sandbox Code Playgroud)

AMRNO是表AFFILIATE_MKTG_REF中的PK.

此外,我尝试使用SQL Management Studio中的修改表选项创建外键关系,我得到了同样的错误.我不确定我应该找什么?

任何建议将不胜感激.

boy*_*dc7 69

您的[dbo].[UPSELL_DATA]表中可能包含[AMRNO]列中的值,这些值在[dbo].[AFFILIATE_MKTG_REF]表,[AMRNO]列中不存在.尝试这样的查询来查找那些没有匹配记录的查询:

select   *
from     [dbo].[UPSELL_DATA] u
left join [dbo].[AFFILIATE_MKTG_REF] m
on       u.AMRNO = m.AMRNO
where    m.AMRNO is null
Run Code Online (Sandbox Code Playgroud)

  • 那是对的.5年的SQL和我今天无法想象这一点,我的咖啡在哪里. (3认同)
  • 好吧,如果要创建受信任的约束,则必须从UPSELL_DATA表中删除它们,或者在AFFILIATE_MKTG_REF表中为给定的ID创建关联的条目.唯一的另一种选择是保持/创建一个不受信任的约束,如上面的链接中所讨论的(这里是http://www.mssqltips.com/tip.asp?tip=1539). (2认同)