select * from T_Users
go
create proc usp_getDataFY
@pagesize int =10, --每页记录条数 --定义变量并赋初始值
@pageindex int =1, --当前要查看第几页的记录--
@sumCount int output, --总的记录条数 --输出变量
@pageCount int output --总的页数
as
begin
--1.编写SQL查询语句,把用户要的数据查询出来
--关键的地方就在(@pageindex-1)*@pagesize+1。between是查区间数据
--比如总数据有55条,每页显示10条,总的页数是6页。我现在要看第3页的数据,那么结果应该是显示21-30的数据
--那么(@pageindex-1)运算是(3-1)*10+1结果刚好是21,而@pagesize*@pageindex就是10*3是30
--所以between 21 and 30
--2.计算总的记录条数
set @sumCount=(select count(*) from T_Users)
--3.计算总页数:总条数/每页显示条数=多少页 ceilling函数向上取整天花板。3.1取4
set @pageCount=ceiling(@sumCount*1.0/@pagesize)
end
---------------------------------
下面是调用存储过程,看第三页的数据
declare @rowConut int,@pageSum int --存储过程中定义了输出变量,所以这里定义变量进行接收
exec usp_getDataFY @pageindex=3, @sumCount=@rowConut output,@pageCount=@pageSum output
print @rowConut --输出总的数据条数
print @pageSum --输出总的页数
@pageindex变量可以赋值,不赋值默认就是1
显示结果:

完美。
本文介绍了一种使用存储过程实现SQL分页查询的方法。通过创建一个存储过程usp_getDataFY,利用输入参数控制每页显示的记录数及当前页码,并通过计算返回总记录数和总页数。
1011

被折叠的 条评论
为什么被折叠?



