• -- Try to use this FUNCTION instead of any temptables, looping, dinamyc SQL and so on.

    if exists (select * from dbo.sysobjects where name = 'f_hextostr' and xtype = 'FN')

    drop function [dbo].[f_hextostr]

    GO

    CREATE FUNCTION [dbo].[f_hextostr] (@hexstring VARCHAR(512))

    RETURNS VARCHAR(256)

    AS

    begin

     declare @char1 char(1), @char2 char(1), @strlen int, @currpos int, @result varchar(256)

     set @strlen=len(@hexstring)

     set @currpos=1

     set @result=''

     while @currpos<@strlen

      begin

       set @char1=substring(@hexstring,@currpos,1)

       set @char2=substring(@hexstring,@currpos+1,1)

       if (@char1 between '0' and '9' or @char1 between 'A' and 'F')

        and (@char2 between '0' and '9' or @char2 between 'A' and 'F')

        set @result=@result+

         char((ascii(@char1)-case when @char1 between '0' and '9' then 48 else 55 end)*16+

         ascii(@char2)-case when @char2 between '0' and '9' then 48 else 55 end)

       set @currpos = @currpos+2

      end

     return @result

    end

    GO

    -- After filling rows of Your example, do simple this:

    update #HexToAlpha set alphastring=dbo.f_hextostr(hexstring)

    Best Regards: Richard