SQL2005 中selecdt top后是可以直接跟变量的比如:(但要注意的是变量要用括号括起来)
select top (@i )* from table
在SQL2000中,Select Top后是不能直接跟变量的:
要解决2000中top后跟变量的方法有两种:第一种: declare @i int,@sql varchar(100)
set @i = 100
set @sql = 'select top ' + cast(@i as varchar) + ' * from table'
exec(@sql)
通常我们可以使用这种方法来操作,但有时却不行,比如循环读取记录时(以下这么写会出错)
declare @i int,@sql varchar(100)set @i = 100
set @sql = 'select top ' + cast(@i as varchar) + ' * from table'
DECLARE rs CURSOR LOCAL SCROLL FOR
--设置数据源
exec(@sql)
OPEN rs
第二种:使用set rowcount = 100来实现
set rowcount 100 --设置读取的条数DECLARE rs CURSOR LOCAL SCROLL FOR
--设置数据源
select * from table
OPEN rs
set rowcount 0 --恢复读取的条数