exec(@m=@sql) 这样行不行?!呵呵,我没 试过:-)

解决方案 »

  1.   

    set @sql="select @n=max(id) from example where id in (select top "+ str(@a) + " id from example order by id desc)";
    exec sp_executesql @sql,N'@n int output',@m output
      

  2.   

    declare @a int;
    declare @sql Nvarchar(200);
    declare @m int;set @sql=N"select @r=max(id) from example where id in (select top "+ str(@a) + " id from example order by id desc)"
    exec SP_EXECUTESQL @sql,N'@r INT OUTPUT',@m
      

  3.   

    当然不成,需要用Output参数传递结果