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)一样的结果, 该怎么做?

解决方案 »

  1.   

    将@str申明语句改成"declare @str as varchar(100)"即可  
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  2.   

    nvarchar 鏄痷nicode缂栫爜
    '鎴戠殑TSQL'涓嶆槸unicode缂栫爜
    鏀逛负SELECT CAST(N'鎴戠殑TSQL' AS varbinary) 鍗冲彲
      

  3.   

    declare @str as nvarchar(100)
    set @str=N'鎴戠殑TSQL'
    SELECT CAST(@str AS varbinary)
    SELECT CAST(N'鎴戠殑TSQL' AS varbinary)
    godeclare @str as varchar(100)
    set @str='鎴戠殑TSQL'
    SELECT CAST(@str AS varbinary)
    SELECT CAST('鎴戠殑TSQL' AS varbinary)
      

  4.   

    同意2楼的说法因为declare @str as nvarchar(100)
    set @str='我的TSQL'
    与直接'我的TSQL'
    两都的类型是不同的,所以在类型转换时,结果也是不同的前者是nvarchar,后者则是varchar/char