相关疑难解决方法(0)

带有约束的SQL Server 2005 drop column

我有一个带有"DEFAULT"约束的列.我想创建一个删除该列的脚本.

问题是它返回此错误:

Msg 5074, Level 16, State 1, Line 1  
The object 'DF__PeriodSce__IsClo__4BCC3ABA' is dependent on column 'IsClosed'. 
Msg 4922, Level 16, State 9, Line 1 
ALTER TABLE DROP COLUMN IsClosed failed because one or more objects access this column.
Run Code Online (Sandbox Code Playgroud)

我找不到一种简单的方法来删除一个列及其所有相关的约束(只发现了查看系统表的大脚本......必须(!!)这是一个"好"的方法.)

由于DEFAULT约束的名称是随机生成的,我不能按名称删除它.


更新:
约束类型为"DEFAULT".

我看到了你们提出的解决方案,但我发现它们都非常"脏"......你不觉得吗?我不知道它是用于Oracle还是MySQL,但它可以做类似的事情:

DROP COLUMN xxx CASCADE CONSTRAINTS 
Run Code Online (Sandbox Code Playgroud)

它会丢弃所有相关的约束......或者至少它会自动删除映射到该列的约束(至少CHECK约束!)

在MSSQL中没有类似的东西吗?

sql-server sql-server-2005

60
推荐指数
6
解决办法
7万
查看次数

使用数据定义语言删除列和所有依赖对象

我需要从表中删除一列,但当我尝试删除它时:

对象'object_name'依赖于列'column_name'.

ALTER TABLE DROP COLUMN column_name失败,因为一个或多个对象访问此列.

我可以在系统表中查找依赖项并手动删除它,但我需要进行迁移(使用SQL DDL),以便团队中的所有其他成员只进行更新,运行迁移而不必陷入困境系统对象.

sql t-sql sql-server ddl

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

sql-server ×2

ddl ×1

sql ×1

sql-server-2005 ×1

t-sql ×1