我需要更新数据库表中的少量记录。这些表中的外键约束很少。
要禁用约束,我使用的是: -
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'.
注意:我有许多安装类似数据库的位置。所以这个启用/禁用约束正在某个数据库上运行,但不是全部。
答案 0 :(得分:5)
您执行的某个更新违反了外键约束。在找到并更正有问题的数据之前,您将无法再次启用它。