declare @a int,@b int
declare @sql Nvarchar(4000)  --注意数据类型
set @a=100
set @b=50
set @sql='set @re=@a*@b'declare @re int
exec sp_executesql @sql,N'@a int,@b int,@re int out',@a,@b,@re out
select 结果=@re

解决方案 »

  1.   

    如:
    Exec sp_Executesql N'@c='+@a+'*'+@b,'@c int out',@c out
      

  2.   

    我来贴一个sp_Executesql的用法:
    eg:
    declare @num,
            @sqls
    set @sqls='select count(*) from '+@servername+'a.dbo.b'
    exec(@sqls)
    我如何能将exec执行的结果存入变量@num中declare @num int,
            @sqls nvarchar(4000)
    set @sqls='select @a=count(*) from '+@servername+'.a.dbo.b'
    exec sp_executesql @sqls,N'@a int output',@num output
    select @num
      

  3.   

    Exec  sp_Executesql  N'@c='+@a+'*'+@b,'@c  int  out',@c  out 
    好像参数中不能使用加号