2013-07-23 186 views

回答

0

选择转换(VARBINARY(MAX)@十六进制,2)从foobar的

+0

这不起作用。您确实从中获得了'varbinary',但它是原始varbinary的字符串表示的varbinary。这不是最初的varbinary。 – ErikE

0

您需要使用16进制字符串在一个动态的SQL语句,所以它会被解析为一个VARBINARY。这是一个如何做到这一点的例子。

-- Our original and fn_varbintohexstr values: 
DECLARE @original varbinary(max) = 0xd0cf11; 
DECLARE @sql nvarchar(max) = N'SET @converted = ' + sys.fn_varbintohexstr(@original) + ';'; 

-- Do the conversion 
DECLARE @converted varbinary(max); 
EXEC sp_executesql @sql, 
    N'@converted varbinary(max) OUTPUT', 
    @converted = @converted OUTPUT; 

-- Proof it worked 
PRINT @original; 
PRINT @converted; 
PRINT CASE WHEN @original = @converted THEN 'Same' ELSE 'Different' END; 

这打印Same

如果您尝试user1617237的版本,您会看到它为什么不是正确的答案。

相关问题