表A中的F1列原来长度为64,类型为nvarchar
现在执行以下语句修改F1列的长度:
alter table A alter column F1 nvarchar(32)
结果数据库报错,说将截断二进制,语句执行失败。原因就是缩短了该列的长度。
但是现在我就是要把该列的长度缩短,怎么能不让数据库报错误,又能缩短该列的长度呢?在企业管理器里是可以执行的,但是我要用SQL完成,请问该怎么做?
谢谢各位

解决方案 »

  1.   

    在企业管理器里操作吧
    -------------
    呵呵,我需要用SQL语句完成这个功能,企业管理器能做的,用SQL语句应该也能完成。
      

  2.   

    這樣試試Update A Set F1 = Left(F1, 32)
    alter table A alter column F1 nvarchar(32)
      

  3.   

    huran88(我要做几年编程民工) ( ) 信誉:100    Blog  2007-03-01 16:59:01  得分: 0  
     
     
       楼上的方法要是能用,那还不如把数据全删了再改咧,
    数据都截了还有啥用?
      
     
    --------------看看樓主的回復再說話
     crazyflower(小狂花,学习中……) ( ) 信誉:100    Blog  2007-3-1 16:51:48  得分: 0  
     
     
       
    你原來長度的超過32的數據怎麼處理?只要前32個字符?
    ---------------------
    原来超过32的没有关系,直接截断,只要保留前32位就可以了  
     
      

  4.   

    Update A Set F1 = Left(F1, 32)
    go
    alter table A alter column F1 nvarchar(32)
    go
    当中最好有个GO