一尘不染

SQL Server 2008无法删除约束

sql

我正在尝试使用以下命令从表中删除主键约束

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以便更改列的数据类型,是否有更好的方法来做到这一点?


阅读 228

收藏
2021-05-30

共1个答案

一尘不染

我只想删除PK以便更改列的数据类型,是否有更好的方法来做到这一点?

是的,您完全不需要为此删除并重新创建PK(以及关联的索引)。您可以通过进行简单的元数据更改来完成此操作ALTER TABLE ... ALTER COLUMN

CREATE TABLE #T
(
P VARCHAR(2) PRIMARY KEY
)

INSERT INTO #T VALUES ('AA')

ALTER TABLE #T ALTER COLUMN P VARCHAR(3) NOT NULL

DROP TABLE #T
2021-05-30