Такое же ограничение внешнего ключа таблицы в моей базе данных недоступно. Я не могу его уронить, отключить, добавить обратно, ... Как мне удалить и заново добавить?
Примечание. У меня несколько версий базы данных, созданных с использованием одного и того же сценария. Только в одном я вижу это поведение. В других случаях этот ключ легко добавляется и удаляется.
Большое спасибо. Вот несколько скриптов, которые я запустил, и результат:
В какой-то момент в прошлом я запускал следующий скрипт:
ALTER TABLE Recipe
ADD CONSTRAINT FK_Recipe_DuplicateOfRecipeId_Recipe_Id FOREIGN KEY (DuplicateOfRecipeId)
REFERENCES Recipe (Id) ;
сейчас работает
ALTER TABLE Recipe DROP CONSTRAINT FK_Recipe_DuplicateOfRecipeId_Recipe_Id
results in the following error:
'FK_Recipe_DuplicateOfRecipeId_Recipe_Id' is not a constraint.
и работает
ALTER TABLE Recipe NOCHECK CONSTRAINT FK_Recipe_DuplicateOfRecipeId_Recipe_Id
results in: Constraint 'FK_Recipe_DuplicateOfRecipeId_Recipe_Id' does not exist.
так что я бегу
alter table Recipe ADD CONSTRAINT FK_Recipe_DuplicateOfRecipeId_Recipe_Id FOREIGN KEY (DuplicateOfRecipeId) REFERENCES Recipe (Id);
и я получаю:
The ALTER TABLE statement conflicted with the FOREIGN KEY SAME TABLE constraint "FK_Recipe_DuplicateOfRecipeId_Recipe_Id". The conflict occurred in database "CrawlerDB", table "dbo.Recipe", column 'Id'.
так что я бегу:
select COUNT(*) from sys.objects where name = 'FK_Recipe_DuplicateOfRecipeId_Recipe_Id'
select COUNT(*) from sys.all_objects where name = 'FK_Recipe_DuplicateOfRecipeId_Recipe_Id'
SELECT COUNT(*) FROM sys.foreign_keys where name = 'FK_Recipe_DuplicateOfRecipeId_Recipe_Id'
и все 3 ничего не возвращают.
Что происходит и как мне это исправить? Мне нужно получить доступ к этому объекту, удалить его и добавить обратно.
Большое спасибо!