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
新聞熱點
疑難解答