У меня возникли некоторые проблемы с базой данных SQL Server 2005, которая, кажется, поддерживает ограничение по призракам. У меня есть скрипт, который удаляет рассматриваемое ограничение, выполняет некоторую работу, а затем повторно добавляет то же ограничение. Обычно работает нормально. Теперь, однако, он не может повторно добавить ограничение, потому что база данных говорит, что оно уже существует, даже если удаление работало нормально!
Вот вопросы, с которыми я работаю:
alter table individual drop constraint INDIVIDUAL_EMP_FK
ALTER TABLE INDIVIDUAL
ADD CONSTRAINT INDIVIDUAL_EMP_FK
FOREIGN KEY (EMPLOYEE_ID)
REFERENCES EMPLOYEE
После того, как ограничение снято, я убедился, что объект действительно исчез, используя следующие запросы:
select object_id('INDIVIDUAL_EMP_FK')
select * from sys.foreign_keys where name like 'individual%'
Оба не возвращают результатов (или ноль), но когда я пытаюсь снова добавить запрос, я получаю:
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "INDIVIDUAL_EMP_FK".
Пытаясь отбросить это, я получаю сообщение, что его не существует. Есть идеи?