当我尝试在SQL Server中重新启用约束时,我得到"ALTER TABLE语句与COLUMN FOREIGN KEY约束冲突"

Use*_*404 1 sql t-sql sql-server-2000

我需要更新数据库表中的少量记录.这些表上的外键约束很少.

要禁用约束,我使用这个: -

ALTER TABLE Table_01 NOCHECK CONSTRAINT ALL 
ALTER TABLE Table_02 NOCHECK CONSTRAINT ALL 
ALTER TABLE Table_01 DISABLE TRIGGER ALL
Run Code Online (Sandbox Code Playgroud)

要启用约束,我使用此: -

ALTER TABLE Table_01 ENABLE TRIGGER ALL 
ALTER TABLE Table_01 WITH CHECK CHECK CONSTRAINT ALL 
ALTER TABLE Table_02 WITH CHECK CHECK CONSTRAINT ALL
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,当我尝试将约束放回时,它会出现此错误: -

ALTER TABLE statement conflicted with COLUMN FOREIGN KEY constraint 'FK_Table_01_AAAAA_AAAA'. 
The conflict occurred in database 'DB', table 'Table_02', column 'ID'.
Run Code Online (Sandbox Code Playgroud)

注意:我有许多安装类似数据库的位置.所以这个启用/禁用约束正在某些数据库上运行,但不是全部.

Joe*_*lli 5

您执行的其中一个更新违反了外键约束.在找到并更正有问题的数据之前,您将无法再次启用它.