Когда я пытаюсь повторно включить ограничение в SQL Server, я получаю «оператор ALTER TABLE конфликтует с ограничением COLUMN FOREIGN KEY» - PullRequest
1 голос
/ 15 февраля 2012

Мне нужно обновить несколько записей в таблицах базы данных.В этих таблицах есть несколько ограничений внешнего ключа.

Чтобы отключить ограничение, я использую это: -

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 Ответ

5 голосов
/ 15 февраля 2012

Одно из выполненных вами обновлений нарушило ограничение внешнего ключа.Вы не сможете включить его снова, пока не найдете и не исправите оскорбительные данные.

...