update a set a.Col1=(select b.col2 from b where a.no=b.no) from a,b 我想 让这里面的内容 是unicode (select b.col2 from b where a.no=b.no)类似与 update a set a.Col1=N' ' 明白意思的 回答一下,不明白的就当我没说。

解决方案 »

  1.   

    update
      a
    set
      col=b.col2
    from
       a,b
    where
       a.no=b.no
      

  2.   


    --???转换的意义在?
    update a set col1=convert(nvarchar,b.col2) from a,b where a.no=b.no
      

  3.   

    update a set a.Col1=convert(varchar,(select b.col2 from b where a.no=b.no)) from a,b
      

  4.   

    没有必要先转换.update a set a.col1=b.col2 from a inner join b on a.no=b.no获得 b.col2 后,要写入 a.col1,如果 a.col1 这一列本身就是 nvarchar() 类型的,那写入的时候会自动转换为 unicode 字符串.如果 a.col 不是 nvarchar() 类型,而是 varchar() 类型,那么即使用 convert(nvarchar,b.col2) 转换到 unicode 字符串,在写入 a.col1 时,还得转换回 varchar().
      

  5.   


    哥们,你错了,如果是 Nvarchar 类型,输入不加类似于N的转换的话,那它会按照这个列的排序集进行编码转化,我试过了,所以很发愁,想用这样批量修改的方式达到 和 加N 修改一样的效果