有没有办法将sys.fn_varbintohexstr结果转回varbinary?

时间:2013-07-23 18:24:37

标签: sql-server function hex varbinary

SQL Server中是否有一个函数可以做到这一点? 反转sys.fn_varbintohexstr?

2 个答案:

答案 0 :(得分:0)

从foobar中选择convert(varbinary(max),@ hex,2)

答案 1 :(得分:0)

您需要在动态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的版本,您就会明白为什么它不是正确答案。