2015-11-23 100 views
-1

我尝试删除所有的外国和主键的分配,但到目前为止,我得到以下错误:SQL服务器:无法删除表

Msg 3728, Level 16, State 1, Line 3
'fk_DEPENDENT_ESSN' is not a constraint.

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

这里是我的命令:

Use Company; 
Go 

--Dropping FKs from Dependent Table 
ALTER TABLE Dependent 
DROP fk_DEPENDENT_ESSN 

--Dropping FKs from Dept_Locations Table 
ALTER TABLE Dept_Locations 
DROP fk__DEPT_LOCATIONS__Dnumber 

--Dropping FKs from Employee Table 
ALTER TABLE Employee 
DROP FK__Employee__Dno 

ALTER TABLE Employee 
DROP FK__Employee__Super___ssn 

--Dropping FKs from Project Table 
ALTER TABLE Project 
DROP FK__Project 

--Dropping FKs from WORKS_ON Table 
ALTER TABLE WORKS_ON 
DROP FK__WORKS_ON__Essn 

ALTER TABLE WORKS_ON 
DROP FK__WORKS_ON__PNO 

我应该如何解决这个问题,抱歉,我无法在此处发布我的数据库。如果您有任何问题,请随时发表评论,或者我们可以发送电子邮件。

感谢

+2

如果你不显示您的架构,它可能无法得到一个准确的答案。 –

+0

您需要向脚本显示创建表结构,以便我们可以评估这些键。 – Japongskie

+0

我应该如何在此处发布我的架构 –

回答

0

这个错误是因为fk_DEPENDENT_ESSN不存在。你是否缺少和强调?应该是fk__DEPENDENT_ESSN

您可以使用sysobjects表查看FK的名称。

SELECT * FROM sysobjects WHERE name LIKE '%DEPENDENT_ESSN' 

SQL Server 2008 cannot drop constraint

+0

谢谢,我可以给你发电子邮件吗?很难把这些东西放在这里。或者我可以吗? –

+0

@ LinWei只要运行我发布的查询,它就会检查架构。如果它找到一行,它会向你显示与“DROP”一起使用的密钥的正确名称。如果不是,那么你需要使用更好的'WHERE'子句来找到密钥。 –

+0

它只是在我的数据库上给了我一大串长列表 –