日期:2014-05-19  浏览次数:20539 次

很迷惑!! 关于 SQL 2000 UNICODE 编码问题? 高手请进!! 24小时内结贴!!
TSQL:
declare   @str   as   nvarchar(100)
set   @str= '我的TSQL '
SELECT   CAST(@str   AS   varbinary)
SELECT   CAST( '我的TSQL '   AS   varbinary)

问题:
1,   为什么两次SELECT的结果不一样?
2,   如果我想将变量@str的内容转换成CAST( '我的TSQL '   AS   varbinary)一样的结果,   该怎么做?

------解决方案--------------------
将@str申明语句改成 "declare @str as varchar(100) "即可


*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------
nvarchar 鏄痷nicode缂栫爜
'鎴戠殑TSQL '涓嶆槸unicode缂栫爜
鏀逛负SELECT CAST(N '鎴戠殑TSQL ' AS varbinary) 鍗冲彲
------解决方案--------------------
gz
------解决方案--------------------
关注
------解决方案--------------------
declare @str as nvarchar(100)
set @str=N '鎴戠殑TSQL '
SELECT CAST(@str AS varbinary)
SELECT CAST(N '鎴戠殑TSQL ' AS varbinary)
go

declare @str as varchar(100)
set @str= '鎴戠殑TSQL '
SELECT CAST(@str AS varbinary)
SELECT CAST( '鎴戠殑TSQL ' AS varbinary)
------解决方案--------------------
同意2楼的说法

因为declare @str as nvarchar(100)
set @str= '我的TSQL '
与直接 '我的TSQL '
两都的类型是不同的,所以在类型转换时,结果也是不同的

前者是nvarchar,后者则是varchar/char