Невозможно удалить ограничение в SQL Server 2005, "Не удалось удалить ограничение. См. Предыдущие ошибки"

Я пытаюсь удалить ограничение на таблицу БД, что-то вроде:

ALTER TABLE MyTable drop CONSTRAINT FK_MyTable_AnotherTable

Но исполнение просто работает и работает. Если я остановлю это, я увижу:

Msg 3727, Level 16, State 0, Line 2
Could not drop constraint. See previous errors.

Веб-поиск выдает различные страницы, но обратите внимание, что ограничение правильно названо, и я пытаюсь удалить его, используя правильное имя

4 ответа

Решение

Нашел способ разобраться в этом, хотя я не понимаю, зачем это было нужно.

Смогли снять ограничение, сначала отключив его:

ALTER MyTable NOCHECK CONSTRAINT FK_MyTable_AnotherTable

Затем падение завершается нормально

Все равно приветствую любые комментарии о причине, почему это необходимо

У меня была такая же проблема на SQL Server 2008 R2, я решил свою проблему с помощью строки ниже, надеюсь, она будет работать и для кого-то еще:)

    Alter Table [Table Name]
    DROP Column [Column Name]

Убедитесь, что вы еще не сняли ограничение, например:

SELECT OBJECT_ID('FK_MyTable_AnotherTable')

Если это вернется nullВаше ограничение больше не существует. Это объяснило бы сообщение об ошибке.

У меня была такая же проблема.

Причина заключалась в том, что я допустил ошибку в своем выражении курсора, которое повторяло некоторое ограничение, которое я должен был отбросить. Таким образом, эта ошибка произошла, когда ограничение было фактически удалено в той же транзакции. Затем я сделал откат и проверил, существует ли он: он сделал (конечно, после отката!).

Проверьте, действительно ли он существует в момент сброса.

Другие вопросы по тегам