我继承了一个设计不太好的旧数据库。这是一个 SQL Server 2008 数据库,缺少很多外键关系。下面显示了两个表,我正在尝试手动创建它们之间的 FK 关系dbo.app_status.status_id和dbo.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。