我有一个带有"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中没有类似的东西吗?
我需要从表中删除一列,但当我尝试删除它时:
对象'object_name'依赖于列'column_name'.
ALTER TABLE DROP COLUMN column_name失败,因为一个或多个对象访问此列.
我可以在系统表中查找依赖项并手动删除它,但我需要进行迁移(使用SQL DDL),以便团队中的所有其他成员只进行更新,运行迁移而不必陷入困境系统对象.