gpt4 book ai didi

sql-server - 如何删除带有约束的列?

转载 作者:行者123 更新时间:2023-12-01 16:44:00 28 4
gpt4 key购买 nike

如何删除 SQL Server 2008 中具有默认约束的列?

我的查询是

alter table tbloffers
drop column checkin

我遇到以下错误

ALTER TABLE DROP COLUMN checkin failed because one or more objects access this column.

任何人都可以更正我的查询以删除带有约束的列吗?

最佳答案

首先您应该删除有问题的DEFAULT 约束,然后您可以删除该列

alter table tbloffers drop constraint [ConstraintName]
go

alter table tbloffers drop column checkin

但错误可能是由其他原因引起的 - 例如,用户定义的函数或 View 设置了 SCHEMABINDING 选项。

UPD:完全自动删除约束脚本:

DECLARE @sql NVARCHAR(MAX)
WHILE 1=1
BEGIN
SELECT TOP 1 @sql = N'alter table tbloffers drop constraint ['+dc.NAME+N']'
from sys.default_constraints dc
JOIN sys.columns c
ON c.default_object_id = dc.object_id
WHERE
dc.parent_object_id = OBJECT_ID('tbloffers')
AND c.name = N'checkin'
IF @@ROWCOUNT = 0 BREAK
EXEC (@sql)
END

关于sql-server - 如何删除带有约束的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8641954/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com