34,838
社区成员




alter table CU_SubcontractPaymentDetail drop column CU_Payment100Include
这个字段上设置了约束。被其他表作为外键引用了?
为什么要删除主键呢?
为什么要删除主键呢?
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
id INT NOT NULL,
n NVARCHAR(10)
)
GO
ALTER TABLE t ADD CONSTRAINT PK_t_id PRIMARY KEY CLUSTERED (id)
ALTER TABLE t ADD CONSTRAINT DF_t_id DEFAULT '1' FOR id
GO
ALTER TABLE t DROP COLUMN id
/*
消息 5074,级别 16,状态 1,第 13 行
对象'DF_t_id' 依赖于 列'id'。
消息 5074,级别 16,状态 1,第 13 行
对象'PK_t_id' 依赖于 列'id'。
消息 4922,级别 16,状态 9,第 13 行
由于一个或多个对象访问此 列,ALTER TABLE DROP COLUMN id 失败。
*/
GO
--先删除此列上所有约束,如果有索引也一并删除
ALTER TABLE t DROP CONSTRAINT DF_t_id
ALTER TABLE t DROP CONSTRAINT PK_t_id
GO
--再删除此列
ALTER TABLE t DROP COLUMN id