Sqlserver由于一个或多个对象访问此列问题

Sqlserver由于一个或多个对象访问此列问题,第1张

概述  当动态添加表的列时,如果设置了该列的 默认值,那么再用 alter table TableName drop column ColumnName语句时就会报错,例如, “消息 5074,级别 16,状态 1,第 1 行 对象'DF__Tb_SalaryPar__aa__7DB89C09' 依赖于 列'aa'。 消息 4922,级别 16,状态 9,第 1 行 由于一个或多个对象访问此列,ALT   当动态添加表的列时,如果设置了该列的 默认值,那么再用 alter table tablename drop column Columnname语句时就会报错,例如, 消息 5074,级别 16,状态 1,第 1 行
对象'DF__Tb_SalaryPar__aa__7DB89C09' 依赖于 列'aa'。
消息 4922,级别 16,状态 9,第 1 行
由于一个或多个对象访问此列,ALTER table DROP ColUMN aa 失败。”

因为存在了default约束。


此时我们需要 做的:

--1.查找出表中该列的约束名称
declare @name varchar(50)
select  @name =b.name from sysobjects b join syscolumns a
on b.ID = a.cdefault
where a.ID = object_ID('appraise_result')
and a.name ='recommend_avgnum'


select @name --2. 删除 约束 删除该列 即可 exec('alter table appraise_result drop constraint ' + @name)

总结

以上是内存溢出为你收集整理的Sqlserver由于一个或多个对象访问此列问题全部内容,希望文章能够帮你解决Sqlserver由于一个或多个对象访问此列问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1180827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存