各位用户为了找寻关于分页存储过程(用存储过程实现数据库的分页代码)的资料费劲了很多周折。这里教程网为您整理了关于分页存储过程(用存储过程实现数据库的分页代码)的相关资料,仅供查阅,以下为您介绍关于分页存储过程(用存储过程实现数据库的分页代码)的详细内容

代码如下:

--*******************************************************  --* 分页存储过程 *  --* 撒哈拉大森林 *  --* 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