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

时间:2012-02-14 21:26:56

标签: sql tsql sql-server-2000

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

要禁用约束,我使用的是: -

ALTER TABLE Table_01 NOCHECK CONSTRAINT ALL 
ALTER TABLE Table_02 NOCHECK CONSTRAINT ALL 
ALTER TABLE Table_01 DISABLE TRIGGER ALL

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

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

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

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'.

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

1 个答案:

答案 0 :(得分:5)

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