sql-server – SQL Server错误:“%”不是约束.无法删除约束.查
我正在使用Microsoft SQL Server 2005,而且通常比较新的SQL.
数据库“信息”中的两个表“资源”和“组合资源”之间有一个关系.资源在Group_Resources中有一个外键“id”,命名为“resource_id”.两者之间有一个外键约束,“fk_gr_res_resources”. 我被建立为数据库所有者,并具有完整的读/写/创建/删除权限. 我想删除外键约束,所以我执行了以下查询: ALTER TABLE [Information].[group_resources] DROP CONSTRAINT fk_gr_res_resources 并收到以下错误:
我很困惑,因为它是一个约束,没有拼写错误.我正在删除这个不正确吗?我从不正确的表中删除约束吗?任何建议将不胜感激,&请不要火焰我:毕竟我是新的SQL. 解决方法你得到这个错误:Msg 3728,Level 16,State 1,Line 1 'fk_gr_res_resources' is not a constraint. Msg 3727,State 0,Line 1 Could not drop constraint. See previous errors. 因为FK约束不存在! 你确定信息是正确的模式名称,而不是dbo? 该SQL将证明FK不存在: SELECT * FROM sysobjects WHERE name = 'fk_gr_res_resources' 哎呀,我原来的答案是错误的,下面是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> 感谢纠正我的OMG小马! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |