兩種SQL分頁方法儲存過程和遊標儲存過程
1.儲存過程
SELECT TOP 頁大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 頁大小*頁數 id
FROM 表
ORDER BY id))
ORDER BY ID
2.遊標儲存過程
create procedure SqlPager
@sqlstr nvarchar(4000), --查詢字串
@currentpage int, --第N頁
@pagesize int --每頁行數
as
set nocount on
declare @P1 int, --P1是遊標的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1, @rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 總頁數--,@rowcount as 總行數,@currentpage as 當前頁
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off
利用ID大於多少和SELECT TOP分頁 效率最高,需要拼接SQL語句
利用SQL的遊標儲存過程分頁 效率最差,但是最為通用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-676732/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL 分頁儲存過程SQL儲存過程
- sql儲存過程分頁SQL儲存過程
- 儲存過程——遊標儲存過程
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- 分頁儲存過程儲存過程
- (SQL Server)分頁的儲存過程SQLServer儲存過程
- 通用分頁儲存過程儲存過程
- SqlServer-儲存過程分頁SQLServer儲存過程
- MySQL 儲存過程/遊標/事務MySql儲存過程
- SQL SERVER 2005分頁儲存過程SQLServer儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- SQL儲存過程示例SQL儲存過程
- SQL Server 儲存過程SQLServer儲存過程
- 【SQL Server】--儲存過程SQLServer儲存過程
- Mysql儲存過程中使用多遊標MySql儲存過程
- oracle儲存過程分頁程式碼Oracle儲存過程
- 簡單的儲存過程分頁儲存過程
- 簡單的分頁儲存過程儲存過程
- Oracle 儲存過程分頁 + Sqlsugar呼叫Oracle儲存過程SqlSugar
- SQL Server 儲存過程的經典分頁(轉)SQLServer儲存過程
- 在儲存過程中建立表的兩種方法儲存過程
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 儲存過程儲存過程
- mysql 遊標的使用(儲存過程)MySql儲存過程
- oracle 儲存過程遊標的使用Oracle儲存過程
- MS SQL Server儲存過程SQLServer儲存過程
- Sql Server系列:儲存過程SQLServer儲存過程
- SQL 建立儲存過程PROCEDURESQL儲存過程
- 解密SQL SERVER儲存過程解密SQLServer儲存過程
- SQL儲存過程迴圈SQL儲存過程
- sqlserver儲存過程實現多表分頁SQLServer儲存過程
- 分頁控制元件及儲存過程控制元件儲存過程
- [MSSQL]mssql海量高效分頁儲存過程SQL儲存過程
- ORACLE高效分頁儲存過程程式碼Oracle儲存過程
- 基於ROWCOUNT的分頁儲存過程儲存過程
- 儲存過程if,for,while語句,陣列和遊標使用儲存過程While陣列
- 完整的分頁儲存過程以及c#呼叫方法儲存過程C#
- Mysql 的儲存過程和儲存函式MySql儲存過程儲存函式