Tsql 从varbinary强制转换为varchar时缺少最后一个字节
在某些情况下,我在将varbinary转换为varchar时丢失了最后一个字节。例如:Tsql 从varbinary强制转换为varchar时缺少最后一个字节,tsql,sql-server-2008,Tsql,Sql Server 2008,在某些情况下,我在将varbinary转换为varchar时丢失了最后一个字节。例如: DECLARE @binary varbinary(8000), @char varchar(8000) set @binary = 0x000082 set @char = CAST(@binary as varchar(8000)) select BinaryLength=DATALENGTH(@binary), CharLength=DATALENGTH(@char) 结果是 Bina
DECLARE @binary varbinary(8000),
@char varchar(8000)
set @binary = 0x000082
set @char = CAST(@binary as varchar(8000))
select BinaryLength=DATALENGTH(@binary), CharLength=DATALENGTH(@char)
结果是
BinaryLength CharLength
3 2
受影响的字节值来自0x81-0xFE
奇怪的是,如果我在施法时使用varcharMAX而不是varchar8000,就没有任何问题了
有人能告诉我这个问题的根本原因吗
PS:我在MS sql server 2008中运行sql
谢谢 我在SQLServer2005和SQLServer2008Server上都试过了,每台上都得到了3个。这是重现您的问题的确切代码吗?请问数据库/服务器排序规则是什么?使用哪种SQL server版本、内部版本号、service pack、兼容性级别和排序规则?