Невозможно удалить ограничение в 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
Ваше ограничение больше не существует. Это объяснило бы сообщение об ошибке.
У меня была такая же проблема.
Причина заключалась в том, что я допустил ошибку в своем выражении курсора, которое повторяло некоторое ограничение, которое я должен был отбросить. Таким образом, эта ошибка произошла, когда ограничение было фактически удалено в той же транзакции. Затем я сделал откат и проверил, существует ли он: он сделал (конечно, после отката!).
Проверьте, действительно ли он существует в момент сброса.