2013-07-23 2 views

ответ

0

выберите новообращенный (VARBINARY (макс), @ шестнадцатеричном, 2) от Foobar

+0

Это не работает. Вы получаете из него 'varbinary', но это varbinary строкового представления исходной varbinary. Это не оригинальная varbinary. – ErikE

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, вы увидите, почему это неправильный ответ.

Смежные вопросы