【发布时间】:2015-11-28 16:56:09
【问题描述】:
我已经尝试解决这个问题几个小时了,但我不知道是什么原因造成的。我正在尝试在 MSSQL Server 中删除表(我需要从头开始)以及每当我使用该语句时
DROP TABLE dbo.Manages;
我收到这条消息:
无法删除对象“dbo.Manages”,因为它被 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,但它也不起作用。
【问题讨论】:
-
您必须在要删除的子表上设置 ON DELETE CASCADE。
-
如果您需要从头开始,删除和创建数据库会更简单。
标签: sql-server foreign-keys drop-table