sqlserver删除指定列失败,对象'DF__MailResour__star__7D5BD6B2' 依赖于 列'star'

参考的原文链接:1、https://www.cnblogs.com/dengzt2011/archive/2012/12/09/2810063.html                      

 

 

alter table table_name drop column column_name  sqlserver删除指定列失败时,报告消息如下:

消息 5074,级别 16,状态 1,第 1 行
对象'DF__MailResour__star__7D5BD6B2' 依赖于 列'star'。
消息 4922,级别 16,状态 9,第 1 行
由于一个或多个对象访问此列,ALTER TABLE DROP COLUMN star 失败。

注意看第二行,对象“XX”依赖于“YY”,YY指的就是你要删除的列,XX就是依赖于YY的一个约束。因为有依赖关系,所以删除的时候会抛出异常,如果你一定要删除该列,那么就先删除该列下面的约束

alter table table_name drop constraint XX       删除约束

alter table table_name drop column YY  现在就可以删除指定的列

 

原因:

为什么会有约束呢,查了下说是 增加字段时有default。 

sqlserver 有六大约束,分别是:

​ ​一、主键约束(primary key)​​
​ ​二、外键约束(foreign key)​​
​ ​三、检查约束(check)​​
​ ​四、非空约束(not null)​​
​ ​五、唯一性约束(unique)​​
​ ​六、默认值约束(default)​

default时其中的一种。

posted @ 2024-03-14 11:31  yinghualeihenmei  阅读(76)  评论(0编辑  收藏  举报