由于外键,无法删除表

时间:2015-11-28 16:56:10

标签: sql-server foreign-keys drop-table

我一直试图解决这个问题几个小时,我不知道是什么原因引起的。我试图删除MSSQL Server中的表(我需要从头开始)以及每当我使用该语句时

DROP TABLE dbo.Manages;

我收到此消息:

  

无法删除对象' dbo.Manages'因为它是由a引用的   FOREIGN KEY约束。

问题是,我剩下三张桌子,所有桌子都包含外键(它们相互关联)。事实证明,我也无法删除,而且我被卡住了。我先尝试删除外键,但是

ALTER TABLE dbo.Manages DROP FOREIGN KEY Mgr_start_date;

不会工作。我知道还有一种方法可以这样写:

ALTER TABLE dbo.Manages
DROP FOREIGN KEY fk_(...)

然而,当我创建外键时,我没有使用fk_,我只是简单地说明了

ALTER TABLE dbo.Department
    ADD FOREIGN KEY (Mgr_start_date)
    REFERENCES dbo.Manages(Mgr_start_date);

任何帮助都将受到高度赞赏。我对SQL很新,但我真的很想做到这一点。我尝试了一些来自此论坛的解决方案,例如使用FOREIGN_KEY_CHECKS = 0然后将其设置为1,但它也无法正常工作。

2 个答案:

答案 0 :(得分:1)

您可以使用GUI删除外键。 在Management studio上的表文件夹中,您可以在Key文件夹中找到您的外键。 或者使用EXEC sp_fkeys 'Your Table'查找外键的名称。

答案 1 :(得分:0)

实际上,我想我终于成功了。我右键单击我的特定数据库并选择“设计”,然后在属性下的下拉菜单中找到外键的名称。这样我就可以找到程序设置的外键名称,并正常删除它们。工作得很好,数据库被清理干净了。非常感谢您的建议!