在某些情况下,将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。
谢谢!