declare @aa int
declare @b varchar(10)
set @aa=1
set @b=convert(varchar(20),@aa)
exec('select * from  brda where 年龄>'+@b)
print @aa

解决方案 »

  1.   

    declare @cc char(2)
    declare @bb binary(1)
    DECLARE @SQLString NVARCHAR(500)
    set @cc = '0d'
    set @sqlstring=N'select @RV=0x'+@CC
    execute sp_executesql 
              @sqlstring,
              N'@RV binary(1) output',
      @RV=@bb output
    select @BB
      

  2.   

    CREATE PROCEDURE test_decalre AS
    declare @aa int
    select @aa = id from test_table
    print @aa
    GO
    ----ORCREATE PROCEDURE test_decalre AS
    declare @aa int
    exec  sp_executesql('select @aa = id from test_table',N'@aa int output',@aa output)
    print @aa
    GO
      

  3.   

    我的意思是通过select @aa = id from test_table把在外部定义的@aa变量在Exec中赋值。
      

  4.   

    谢谢hjhing(winding),我需要的是第二种方法,但在检测语法的时候提示“错误170,第三行'select @aa = id from test_table'附近有语法错误!”