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来实现
1 set rowcount 100 --设置读取的条数2 DECLARE rs CURSOR LOCAL SCROLL FOR3 --设置数据源4 select * from table5 OPEN rs6 7 set rowcount 0 --恢复读取的条数
转载于:http://hi.baidu.com/QQdancer_xxl/item/55c0f50db7e075c9905718d3
新闻热点
疑难解答