SQL server 2005,要把表字段decimal(4, 2)修改为decimal(5, 2),表中有大量数据,怎么修改?
查询分析器使用这个语句提示错误:ALTER TABLE  波段 ALTER COLUMN 分 decimal(5, 2)

解决方案 »

  1.   

    提示
    消息 5074,级别 16,状态 8,第 1 行
    对象 'PK_波段' 依赖于 列 '分'。
    消息 5074,级别 16,状态 8,第 1 行
    对象 'PK_波段' 依赖于 列 '分'。
    消息 4922,级别 16,状态 9,第 1 行
    ALTER TABLE ALTER COLUMN 分 失败,因为有一个或多个对象访问此列。我程序都关掉了 没有在访问啊
      

  2.   


    主键列不能这样修改的,需要重新建立,填充数据才行。
    或者先撤了主键,然后修改,再设为主键。 这个如果是上线的数据,lz尽量在业务低频段处理。注意重新设为主键,lz要对统计信息进行重新处理。否则,前台程序会慢。这种扩展确实闹心啊。
      

  3.   

    还有一些进程在访问这张表所以无法修改,可以用SP_WHO2查看那些session还在数据库中,可以Kill掉或者先把数据库修改为单用户然后再访问。数据量大的话直接在SSMS上用UI修改肯定会超时,建议你生成脚本然后在查询界面执行,这样就不会有超时的限制了。