添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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时其中的一种。