How about:
select
convert(varchar,dbo.hexstring_to_binary('0x' + '416E6E61737461736961'))
Here's the function:
ALTER function [dbo].[hexstring_to_binary]
(
@hex_string varchar(max)
)
returns varbinary(max)
as
begin
declare @hex char(2)
declare @position int
declare @count int
declare @binary_value varbinary(max)
set @count = len(@hex_string)
set @binary_value = cast('' as varbinary(1))
if substring(@hex_string, 1, 2) = '0x'
set @position = 3
else
set @position = 1
while (@position <= @count)
begin
set @hex = substring(@hex_string, @position, 2)
set @binary_value = @binary_value +
cast(case when substring(@hex, 1, 1) like '[0-9]'
then cast(substring(@hex, 1, 1) as int)
else cast(ascii(upper(substring(@hex, 1, 1)))-55 as int)
end * 16 +
case when substring(@hex, 2, 1) like '[0-9]'
then cast(substring(@hex, 2, 1) as int)
else cast(ascii(upper(substring(@hex, 2, 1)))-55 as int)
end as binary(1))
set @position = @position + 2
end
return @binary_value
end -- hexstring_to_binary