一个5千万行,25列的表,想将它的"备注" 的长度,varchar(80),改为varchar(10),有什么好方法?

解决方案 »

  1.   

    varchar本来就是变长的字段,只会存储实际字长。除非你想做truncate,把超过10字节的数据截断至10字节。可以参考一下SSIS服务中的DataConvert组件的使用。
      

  2.   

    字段长度改小的话,估计要截取数据哦,否则数据库会有warning.
    生成一些新表,用DTS(2000)或者SSIS(2005)导入.相对较快.
      

  3.   


    create table T(ID nvarchar(80))
    go
    insert t select replicate('A',80)go
    update T set ID=cast(ID as nvarchar(10))
    go
    alter table t alter column ID nvarchar(10)
      

  4.   


    alter table tbname alter column 备注 varchar(10)