我正在尝试使用以下方法从表中删除主键约束
ALTER TABLE SchemaName.LabourGrade DROP CONSTRAINT Labour_Grade_pk
并收到错误
Labour_Grade_pk is not a constraint.
当我做
SELECT * FROM sysobjects WHERE name = 'LabourGrade_pk'
我得到一排。它确实有 FK,所以我尝试放弃那些第一个但同样的问题。
我只想删除 PK 以更改列的数据类型,有没有更好的方法来做到这一点?
最佳答案
如 SELECT * FROM sysobjects WHERE name = 'LabourGrade_pk'
正在返回一行,那么您要使用:
ALTER TABLE SchemaName.LabourGrade DROP CONSTRAINT LabourGrade_pk
不是
ALTER TABLE SchemaName.LabourGrade DROP CONSTRAINT Labour_Grade_pk
--^-- We don't want this
但是,根据其他评论和@Martin 的回答,这并没有解决您为什么需要放弃此约束。
关于SQL Server 2008 不能删除约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12671345/