• 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