7

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

ALTER TABLE MyTable drop CONSTRAINT FK_MyTable_AnotherTable

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

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

网络搜索会弹出各种页面,但请注意该约束已正确命名,我正在尝试使用正确的名称将其删除

4

4 回答 4

4

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

    Alter Table [Table Name]
    DROP Column [Column Name]
于 2014-05-29T08:01:32.053 回答
2

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

已经能够通过首先禁用它来删除约束:

ALTER MyTable NOCHECK CONSTRAINT FK_MyTable_AnotherTable

然后下降完成

仍然欢迎任何评论为什么这是必要的

于 2010-04-07T14:54:06.680 回答
1

验证您是否已经放弃了约束,例如:

SELECT OBJECT_ID('FK_MyTable_AnotherTable')

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

于 2010-04-07T13:56:49.383 回答
0

我有同样的问题。

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

检查它在下降的那一刻是否真的存在。

于 2015-12-02T07:18:11.877 回答