作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 Microsoft SQL Server 2005,总体来说对 SQL 还比较陌生。
数据库“Information”中的“Resources”和“Group_Resources”两个表之间存在关系。资源在 Group_Resources 中有一个外键“id”,名为“resource_id”。两者之间有一个外键约束“fk_gr_res_resources”。
我被确定为数据库所有者,并拥有完整的读/写/创建/删除权限。
我想删除外键约束,所以我执行了以下查询:
ALTER TABLE [Information].[group_resources] DROP CONSTRAINT fk_gr_res_resources
并收到以下错误:
'fk_gr_res_resources' is not a constraint. Could not drop constraint. See previous errors.
我很困惑,因为它是一个约束,并且没有拼写错误。我会不恰本地删除这个吗?我是否从不正确的表中删除约束?
最佳答案
您收到此错误:
Msg 3728, Level 16, State 1, Line 1
'fk_gr_res_resources' is not a constraint.
Msg 3727, Level 16, State 0, Line 1
Could not drop constraint. See previous errors.
因为FK约束不存在!
您确定 Information
是正确的架构名称,而不是 dbo
?
<强>1。这条SQL将证明FK不存在:
SELECT * FROM sysobjects WHERE name = 'fk_gr_res_resources'
<强>2。哎呀,我原来的答案是错误的,这是 SQL Server 的正确语法:
ALTER TABLE <table_name>
DROP CONSTRAINT <foreignkey_name>
<强>3。您的数据库示例:
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'fk_gr_res_resources')
BEGIN
ALTER TABLE Group_Resources
DROP CONSTRAINT fk_gr_res_resources
END;
<强>4。尝试运行这个:
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name = 'fk_gr_res_resources')
BEGIN
ALTER TABLE Group_Resources
ADD CONSTRAINT fk_gr_res_resources
FOREIGN KEY (resource_id)
REFERENCES Resources(id) /* make sure Resources.id is a PRIMARY KEY */
END;
<强>5。然后尝试一下,看看是否仍然出现该错误:
ALTER TABLE Group_Resources
DROP CONSTRAINT fk_gr_res_resources
另一种语法适用于 MySQL,抱歉:
ALTER TABLE <table_name>
DROP FOREIGN KEY <foreignkey_name>
关于sql-server - SQL Server 错误 : "%" is not a constraint. 无法删除约束。查看之前的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3496687/
我是一名优秀的程序员,十分优秀!