LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法

admin
2012年10月23日 23:16 本文热度 3714
在SQL数据库中使用SQL语句(格式:alter table [tablename] alter column [colname] [newDataType])修改某表的字段类型时,报一下错误:

“**********************************

对象"DF__******" 依赖于 列"column1"。
***********************************
由于一个或多个对象访问此列,ALTER TABLE ******** 失败。”


  根据上述提示在网上搜索结果,得知发生该错误的原因在于要修改的字段存在Default约束,解决方法:


1.查找出表中该字段的约束名称(或根据已有的提示及对象"DF__******")

declare @name varchar(50)
select  @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault
where a.id = object_id("TableName")
and a.name ="ColumName"


2. 删除存在的约束

exec("alter table TableName drop constraint " + @name)


3. 再执行修改字段类型的脚本即可

  综合查阅资料发现:将表中的字段设置为NOT NULL(不为空)、给字段增加Default值(默认值)这样的操作都会给该字段添加约束,增加了这些约束后,在用SQL脚本修改字段类型、删除字段的时候均会发生类似错误,需要查找该字段上已存在的约束,并删除存在的约束,再次执行修改/删除脚本即可。


  资料引用:

  1. 修改字段类型时出现的 依赖于 列Classinfo_ShowType,因为有一个或多个对象访问此列(邹建请进)

  2. 由于一个或多个对象访问此列错误的解决办法

  3. SQL Server】sql语句删除表的有默认值的列

  4. Alter Table修改表结构的错误及解决方法


该文章在 2012/10/23 23:16:47 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved