代码之家  ›  专栏  ›  技术社区  ›  DannykPowell

无法删除SQL Server 2005中的约束,“未能删除约束。查看以前的错误“

  •  5
  • DannykPowell  · 技术社区  · 14 年前

    我试图删除对DB表的约束,比如:

    ALTER TABLE MyTable drop CONSTRAINT FK_MyTable_AnotherTable
    

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

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

    Web搜索会弹出各种页面,但请注意,约束的名称是正确的,我正试图使用正确的名称删除它。

    4 回复  |  直到 6 年前
        1
  •  3
  •   Zeeshan Ajmal    10 年前

    我也有同样的问题 SQL Server 2008 R2 ,我用下线解决了我的问题,希望它也能为其他人工作:)

        Alter Table [Table Name]
        DROP Column [Column Name]
    
        2
  •  2
  •   DannykPowell    14 年前

    找到了一种方法来解决这个问题,尽管我不明白为什么有必要这样做。

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

    ALTER MyTable NOCHECK CONSTRAINT FK_MyTable_AnotherTable
    

    然后就可以了

    仍然欢迎对这一必要原因的任何评论

        3
  •  1
  •   Andomar    14 年前

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

    SELECT OBJECT_ID('FK_MyTable_AnotherTable')
    

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

        4
  •  0
  •   flam3    9 年前

    我也有同样的问题。

    原因是我在cursor语句中犯了一个错误,它重复了我要删除的一些约束。 所以这个错误发生在约束 在同一事务中删除 . 然后我做了一个回滚并检查它是否存在:它确实存在(当然,在回滚之后!).

    检查它在下降时是否真的存在。