无法在SQL Server 2005中删除约束,“无法删除约束。请参阅先前的错误”

时间:2010-04-07 13:53:33

标签: sql sql-server constraints alter-table

我正在尝试在数据库表上删除约束,例如:

ALTER TABLE MyTable drop CONSTRAINT FK_MyTable_AnotherTable

但执行只是运行并运行。如果我停止它,我会看到:

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

网页搜索引发各种网页,但请注意约束已正确命名,我正在尝试使用正确的名称将其删除

4 个答案:

答案 0 :(得分:4)

我在 SQL Server 2008 R2 上遇到了同样的问题,我用下面的线解决了我的问题,希望它也适用于其他人:)

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

答案 1 :(得分:2)

找到了一种对此进行排序的方法,虽然我不明白为什么这是必要的。

首先可以通过禁用它来删除约束:

ALTER MyTable NOCHECK CONSTRAINT FK_MyTable_AnotherTable

然后下降完成

仍然欢迎任何关于必要的原因的评论

答案 2 :(得分:1)

确认您尚未删除约束,例如:

SELECT OBJECT_ID('FK_MyTable_AnotherTable')

如果返回null,则您的约束不再存在。这可以解释错误信息。

答案 3 :(得分:0)

我有同样的问题。

原因是我在我的游标语句中犯了一个错误,它正在迭代我要删除的一些约束。 因此,当在同一事务中实际删除约束时,会发生此错误。然后我做了回滚并检查它是否存在:它确实(当然,在回滚后!)。

检查它在丢弃时是否真的存在。