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

     在SQL数据库中使用SQL语句(格式:alter table [tablename] alter column [colname] [newDataType])修改某表的字段类型时,报一下错误:
    由于一个或多个对象访问此列,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脚本修改字段类型、删除字段的时候均会发生类似错误,需要查找该字段上已存在的约束,并删除存在的约束,再次执行修改/删除脚本即可。

  • 相关阅读:
    SytemC on CentOS 5.3 64bit
    Fast Poisson Disk Sampling
    Geometry Imager Viewport Filter
    Dinornis – Rendering your Model in Mudbox by RenderMan Directly !
    Models of biological pattern formation
    OrthoLab
    如何编译ATILA GPU Emulator
    感受谷歌地图
    树状列表完成
    获取地图标记点经纬度
  • 原文地址:https://www.cnblogs.com/echogreat/p/3402312.html
Copyright © 2011-2022 走看看