create procedure testp
@hexstr nvarchar(10),@r int output
as
declare @sql nvarchar(100)
set @sql=N'set @r='+@hexstr
exec sp_executesql @sql,N'@t int output',@r output
go例:
declare @tt int
exec testp N'0x31',@tt output
print @tt结果:
49

解决方案 »

  1.   

    上面写错一个字母
    create procedure testp
    @hexstr nvarchar(10),@r int output
    as
    declare @sql nvarchar(100)
    set @sql=N'set @r='+@hexstr
    exec sp_executesql @sql,N'@r int output',@r output
    go例:
    declare @tt int
    exec testp N'0x31',@tt output
    print @tt结果:
    49
      

  2.   

    select master.dbo.fn_varbintohexstr(cast(31 as varbinary(100)))declare @a binary
    set @a=0x31
    print @a
      

  3.   

    declare @a binary
    set @a=0x31
    print cast(@a as int)
      

  4.   


    http://expert.csdn.net/Expert/topic/2236/2236263.xml?temp=.7266352
    看。