日期:2014-05-19  浏览次数:20555 次

select 问题
declare   @count   int
set   @count     =     2
select   top   @count   *   from   test

这句话为什么出错

------解决方案--------------------
------------try-------------

declare @count int
set @count = 2
exec( 'select top '+@count+ ' * from test ')
------解决方案--------------------
2005没问题

2000就会出错

declare @count int
set @count = 2
exec( 'select top '+ cast(@count as varchar) + ' * from test ')

------解决方案--------------------
select top @count * from test

这个语句不能直接执行,要变成动态的sql执行
------解决方案--------------------
declare @n int set @n=4
exec( 'select top '+ @n+ ' * from tb1 ')
------解决方案--------------------
2005 top 可以带参
------解决方案--------------------
动态的sql