Alter table RKD_MX ALTER COLUMN SL_JYBHG real执行后提示服务器: 消息 5074,级别 16,状态 1,行 1
对象 'DF_YG_RKD_Mx_ini_SL_JYBHG' 依赖于 列 'SL_JYBHG'。
服务器: 消息 4922,级别 16,状态 1,行 1
ALTER TABLE ALTER COLUMN SL_JYBHG 失败,因为有一个或多个对象访问此列。SL_JYBHG 这个字段原来类型是numeric(18,2),需要修改成real

解决方案 »

  1.   

    应该是你的这个列上有默认值约束,你得先把约束删除了:
    下面是重现这个情况:
    use tempdb
    gocreate table t (col numeric(18,2) default 0)
    goalter table t alter column col real
    go
      

  2.   

    检查对象 'DF_YG_RKD_Mx_ini_SL_JYBHG' 本身语法对的--try:
    Alter table RKD_MX ALTER COLUMN SL_JYBHG real not null default 0
      

  3.   

    那么你要修改,就应该:--删除约束
    alter table t
    drop constraint DF__t__col__7D78A4E7
    go--修改类型
    alter table t
    alter column col real
    go
      

  4.   

    先在表设计器中查查 'DF_YG_RKD_Mx_ini_SL_JYBHG' 是什么.
      

  5.   

    CN_SQL说的是对的
    先删除'DF_YG_RKD_Mx_ini_SL_JYBHG' 就可以 修改了,因为你原来表有一个缺省