无法创建外键,因为它与自身冲突

LaB*_*cca 1 sql-server foreign-keys sql-server-2014

我正在尝试将外键添加到表中,但我不能,因为我收到此错误:

消息 547,级别 16,状态 0,第 1 行 ALTER TABLE 语句与 FOREIGN KEY 约束“FK_RDATA_COMBO_VALUES_ID_REFERENCES”冲突。冲突发生在数据库“MyDatabase”、表“dbo.EVA_REFERENCES”、列“ID_REFERENCES”中。

错误消息表明问题与此冲突,FK_RDATA_COMBO_VALUES_ID_REFERENCES但这是我尝试创建的 FK 的名称,它还不存在。

这是我的桌子:

CREATE TABLE [dbo].[RDATA_COMBO_VALUES](
    [ID_RDATA_COMBO] [int] IDENTITY(1,1) NOT NULL,
    [ID_REF_CDATA] [int] NOT NULL,
    [ID_MODULE_REC_ID] [int] NOT NULL,
    [VALUE] [nvarchar](max) NULL,
    [ID_REFERENCES] [int] NOT NULL,
 CONSTRAINT [PK_RDATA_COMBO_VALUES] PRIMARY KEY CLUSTERED 
(
    [ID_RDATA_COMBO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

ALTER TABLE [dbo].[RDATA_COMBO_VALUES]  WITH CHECK ADD  CONSTRAINT [FK_RDATA_COMBO_VALUES_ID_REF_CDATA] FOREIGN KEY([ID_REF_CDATA])
REFERENCES [dbo].[EVA_REFERENCE_CDATA] ([ID_REF_CDATA])
GO

ALTER TABLE [dbo].[RDATA_COMBO_VALUES] CHECK CONSTRAINT [FK_RDATA_COMBO_VALUES_ID_REF_CDATA]
GO
Run Code Online (Sandbox Code Playgroud)

这是我用来创建 FK 的命令:

ALTER TABLE [dbo].[RDATA_COMBO_VALUES]  WITH CHECK ADD  CONSTRAINT [FK_RDATA_COMBO_VALUES_ID_REFERENCES] FOREIGN KEY([ID_REFERENCES])
REFERENCES [dbo].[EVA_REFERENCES] ([ID_REFERENCES])
Run Code Online (Sandbox Code Playgroud)

为什么ALTER TABLE与FK冲突的语句我还没有创建?

更新:这个问题在这个问题中有一个延续,它引发了我关于这张表的所有问题。

LaB*_*cca 6

该消息可能会产生误导,但我尝试添加的 FK 与数据冲突,因为该字段包含引用表中不存在的值。

在创建 FK 之前,需要删除孤儿。