从varbinary转换为varchar时丢失的最后一个字节

时间:2010-04-09 01:31:17

标签: 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)

结果是

BinaryLength   CharLength
    3              2

受影响的字节值来自0x81 - 0xFE。

奇怪的是,如果我在施法时使用varchar(MAX)而不是varchar(8000),则没有任何问题。

有人能告诉我问题的根本原因吗?

PS:我在MS SQL server 2008中运行sql。

谢谢!

0 个答案:

没有答案