Sql Server 2008 手动创建外键

Sql Server 2008 手动创建外键

我继承了一个设计不太好的旧数据库。这是一个 SQL Server 2008 数据库,缺少很多外键关系。下面显示了两个表,我正在尝试手动创建它们之间的 FK 关系dbo.app_status.status_iddbo.app_additional_info.应用程序 ID

在此处输入图片描述

当我尝试使用以下查询创建关系时,我正在使用 SQL Server Management Studio

USE myDatabase; 
GO ALTER TABLE dbo.app_additional_info 
ADD CONSTRAINT FK_AddInfo_AppStatus FOREIGN KEY (application_id) 
    REFERENCES dbo.app_status (status_id) 
    ON DELETE CASCADE
    ON UPDATE CASCADE ; 
GO

但是,当我运行查询时,我收到此错误

ALTER TABLE 语句与 FOREIGN KEY 约束“FK_AddInfo_AppStatus”冲突。冲突发生在数据库“myDatabase”、表“dbo.app_status”、列“status_id”中。

我想知道查询是否失败,因为每个表已经包含大约 130,000 条记录?

答案1

问题在于子表中的一些记录在父表中没有匹配的 ID。

相关内容