SQL SERVER分页存储过程(用存储过程实现数据库的分页代码)
2022-11-12 09:52:59
内容摘要
这篇文章主要为大家详细介绍了SQL SERVER分页存储过程(用存储过程实现数据库的分页代码),具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
文章正文
这篇文章主要为大家详细介绍了SQL SERVER分页存储过程(用存储过程实现数据库的分页代码),具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <code>--******************************************************* --* 分页存储过程 * --* 撒哈拉大森林 * --* 2010-6-28 * --******************************************************* if exists(select * from sysobjects where type= 'P' and name=N 'P_Paging' ) drop procedure P_Paging go create procedure P_Paging @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 go ----创建测试表 -- if exists(select * from sysobjects where type= 'U' and name=N 'Test_Students' ) -- drop table Test_Students --go --create table Test_Students( -- id int IDENTITY(1,1) not null, -- name nvarchar(100) not null --) -- ----创建测试数据 -- declare @i int --set @i = 100000 -- while @i>0 -- begin -- insert into Test_Students values( '姓名' ) -- set @i = @i - 1 -- end -- ----执行存储过程 -- exec P_Paging 'select * from Test_Students order by id' ,100,100 --执行 -- ----删除测试表 -- if exists(select * from sysobjects where type= 'U' and name=N 'Test_Students' ) -- drop table Test_Students --go </code> |
注:关于SQL SERVER分页存储过程(用存储过程实现数据库的分页代码)的内容就先介绍到这里,更多相关文章的可以留意
代码注释