declare @aa numeric这个里面要带括号吧(10,2)之类的

解决方案 »

  1.   

    declare @aa numeric
    select @aa=a from b
    exec (@sql),相当于调用另一个存储过程,
      

  2.   

    set @sql='declare @aa numeric  select @aa=a from b'
    exec (@sql)
      

  3.   

    直接这样执行试试:
    exec('select '+@aa+'=a from b')
      

  4.   

    不行呀,  
    declare @aa numeric,
    set @sql='select @aa=a from b' 
    exec (@sql),最后,我还要print @aa,.....后面我还要用到@aa 的呀,!
      

  5.   


    set @sql='declare @aa numeric  select @aa=a from b'
    exec (@sql)
      

  6.   

    declare @aa numeric,
    set @sql='select @aa=a from b' execute sp_executesql @sql,N'@aa numeric output',@aa
      

  7.   

    给你个例子,希望有帮助
    declare @level tinyint
    execute sp_executesql 
              N'select @level=100',
              N'@level tinyint output',
              @level output
    select @level
      

  8.   

    如果仅仅只是得到那个值,可以不需要用动态SQL啊。
    declare @aa numeric  
    select @aa=a from b 
    Print @aa
      

  9.   

    declare @aa numeric,@sql nvarchar(128)
    set @sql='select @aa=a from b' execute sp_executesql @sql,N'@aa numeric output',@aa outputprint @aa