千家信息网

SQL Server中怎么使用分页的存储过程

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章为大家展示了SQL Server中怎么使用分页的存储过程,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、 以学生表为例,在数据库中有一个Studen
千家信息网最后更新 2026年11月02日SQL Server中怎么使用分页的存储过程

本篇文章为大家展示了SQL Server中怎么使用分页的存储过程,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、 以学生表为例,在数据库中有一个Student表,字段有StudentNo, ,LoginPwd, StudentName,Sex,ClassId,Phone,Address,BornDate,Email,isDel

要求:查询学生的信息,每页显示5条记录

二、第一种方式分页:利用子查询 not in

例如:

第一页

select top 5 * from Student

第二页: 查询前10条中不在前5条的记录,那么就是6-10,也就是第二页

select top 5 * from Student where StudentNo not in(select top 10 Studentno from Student)

同理可以得到第三页、、、、、、、

这种方式相信大家都能明白,这种分页的存储过程写法就不多做介绍,重点介绍下面那种分页方法。

三、第二种方式分页:利用ROW_NUMBER()这个自带的函数

因为自05之后,提供一个专门用于分页的函数,那就是ROW_NUMBER()这个函数,分页的基本语法:ROW_NUMBER() over(排序字段):可以根据指定的字段排序,对排序之后的结果集的每一行添加一个不间断的行号,相当于连续的id值一样,

例如sql语句:select ROW_NUMBER() over(order by studentno) id, * from Student 那么结果集可以看到:

那么我们可以看到id值是连续的,所有接下来的存储过程写起来就比较简单了。

注意:我们必须为这个结果集命一个新名字,比如我们命名为temp,那么分页存储过程可以写出:

if exists( select * from sysobjects where name='usp_getPageData')drop proc usp_getPageData --如果存在名字为usp_getPageData的存储过程则删除gocreate proc usp_getPageData --创建名字usp_getPageData存储过程@toPage int=0 output, --总页数@pageIndex int =1 , --默认显示第一页@pageCount int =5 --默认每页的记录为5条asselect temp.StudentNo,temp.LoginPwd,temp.StudentName,temp.Sex,temp.ClassId,temp.Phone,temp.Address,temp.BornDate,temp.Email,temp.isDel from(select ROW_NUMBER() over (Order by studentno) id,* from Student) tempwhere id>(@pageIndex-1)*@pageCount and id<=@pageIndex*@pageCountset @toPage=ceiling((select COUNT(*) from Student)*1.0/@pageCount) --使用ceiling函数算出总页数go

说明因为在实际的项目的开发中,经常要显示总页数给用户看的,所有这里的存储过程增加了一个toPage参数,由于它是要输出给用户看的,所有参数类型定义为output,并用set进行赋值。

上述内容就是SQL Server中怎么使用分页的存储过程,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

过程 存储 函数 名字 字段 就是 方式 结果 页数 排序 查询 内容 参数 学生 技能 用户 知识 简明 接下来 简明扼要 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 上海卓越科技互联网 互联网科技公司起名 互联网科技工作委员会主任 新华互联网科技学院 工业互联网科技新基建 杭州互联网科技公司 伴你行互联网科技有限公司 佰商互联网科技有限公司 全球顶尖互联网科技公司 互联网金融中的现代科技 互联网对科技的发展 南平创想时代互联网科技有限公司 2021互联网科技公司排名 宁波跨境商互联网科技有限公司 兰石爱特工业互联网科技分公司 保山互联网科技靠谱吗 平安好医生打造互联网科技医疗 科技互联网企业在行动 知域互联网科技有限公司官网 互联网是第几次科技革命的成果 互联网科技产业 互联网科技保险 北京互联网科技有限公司 互联网科技作文 杭州互联网科技公司 中国航天科技大学国际工业互联网 青岛科技大学互联网大赛研究生 宜昌元轩互联网科技有限公司 互联网科技机房
0