分页存储过程(用存储过程实现数据库的分页代码

2023年 4月 17日 35.3k 0

复制代码 代码如下: --******************************************************* --* 分页存储过程 * --* 撒哈拉大森林 * --* 2010-6-28 * --******************************************************* if exists(select * from sysobje

复制代码 代码如下:--******************************************************* --* 分页存储过程 * --* 撒哈拉大森林 * --* 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

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论