後來比較了兩邊差異,原來是定序不同造成的,以下寫了個簡單例子供各位參考(用Cast也可)
declare @var nvarchar(32)
set @var = N'傳說中的6頭牛-牛牪犇'
select @var 'nvarchar',
convert(varchar(32),@var) COLLATE SQL_Latin1_General_CP1_CI_AS
'轉成varchar(Latin定序)',
convert(varchar(32),@var) COLLATE Chinese_Taiwan_Stroke_CI_AS
'轉成varchar(Chinese定序)'
基本上,nvarchar轉varchar,英數字不會有問題,但中文裡若是有Unicode字元的會轉成?喔
至於我為什會需要將nvarchar轉varchar呢!因為在作SQL與DB2的轉換,DB2那邊都是varchar的囉!
0 意見:
張貼留言