declare @num int 
declare @sql
select @num=9
select @sql='select top'+ @num +' * from tablename order by id'
exec(@sql)

解决方案 »

  1.   

    谢谢hsj的回复,这个方法我也知道,问题就在我如何获取这个脚本执行后的结果?例如将结果集赋值给变量?
      

  2.   

    可能我描述不太明白吧.
    我的意思是用exec执行了这句sql后,如何获得结果例如: exec('select max(id) from tablename order by id')
    如何获得max(id)这个结果?
      

  3.   

    例如前面我说的,我执行了语句后,需要获得max(id)的值,并用于其他方面的运算.
    或者说这个记录集生成后我该如何读取这个记录集里面的数据呢?
      

  4.   

    select @sql= 'select @num=max(id) from tablename order by id'
     exec sp_executesql @sql, N'@num Int out',@num output
    select @num
      

  5.   

    这样不就可以了
    declare @num int
    select @num=max(id) from tablename order by id
    select @num
      

  6.   

    hsj兄,用sp_executesql已经成功实现了,实在非常感谢你的帮忙!:)