-- 1.建立修改学生数据的存储过程
-- 2.建立根据班级Id和学生姓名模糊查询的分页存储过程,要求正确输出总记录数,总页数
-- (输入班学生姓名 计算总记录数 计算总页数)
-- @name 学生姓名模糊查询 @pagesize 每页大小   @currentpage 当前页 @totalcount 总记录数  @totalpage 总页数
create proc p_show(@stuName nvarchar(50),@pagesize int,@currentpage int out,@totalcount int out,@totalpage int out)
as
begin
    -- 首先要对传进来的当前页进行判断,既不能小于1,也不能大于总页数
 if @currentpage<1
 begin
    set @currentpage=1
 end
 -- 先计算总记录数
 select @totalcount=COUNT(*) from student where stuName like '%'+@stuName+'%'
 
 -- 总页数计算(如果总记录数能被每页记录数除尽 则总页数=总记录数/每页大小 否则这就是 总记录数/每页大小+1)
 if @totalcount % @pagesize = 0
     set @totalpage=@totalcount / @pagesize
 else
     set @totalpage = @totalcount / @pagesize + 1
 
 -- 在判断一下 如果当前页大于总页数,那么当前页 = 总页数
 if @currentpage > @totalpage
    set @currentpage = @totalpage
  
      分页查询
   select * from  
    (select a.id,a.stuName,a.birthDay,a.age,a.ClassId,b.ClassName,b.CCount, ROW_NUMBER() over (order by stuName)rn
    from student a left join Class b on a.ClassId=b.ClassId where a.stuName like '%'+@stuName+'%')t1
    where rn between (@currentpage-1) * @pagesize + 1 and @currentpage * @pagesize
end
go
--两个输出字段
declare @currentpage int,@totalCount int, @totalPage int
set @currentpage = 1
 
 调用分页存储过程
exec p_show '四',8,@currentpage out,@totalCount out, @totalPage out
select @currentpage,@totalCount,@totalPage

SQLserver 的分页存储过程的更多相关文章

  1. sqlserver 通用分页存储过程(转)

    USE [AAA_TYDC] GO /****** Object: StoredProcedure [dbo].[proc_DataPagination] Script Date: 11/20/201 ...

  2. sqlserver 通用分页存储过程

    来源:http://www.jb51.net/article/19936.htm CREATE PROCEDURE commonPagination ), --要显示的列名,用逗号隔开 ), --要查 ...

  3. SQLServer 高效 分页存储过程

    /********************************************************************** 参数:@PrimaryKey 主键,@OrderBy 排 ...

  4. 分页存储过程实现-SqlServer

    一个通用的分页存储过程实现-SqlServer(附上sql源码,一键执行即刻搭建运行环境) 使用前提 查询表必须有ID字段,且该字段不能重复,建议为自增主键 背景 如果使用ADO.NET进行开发,在查 ...

  5. 一个通用的分页存储过程实现-SqlServer(附上sql源码,一键执行即刻搭建运行环境)

    使用前提 查询表必须有ID字段,且该字段不能重复,建议为自增主键 背景 如果使用ADO.NET进行开发,在查询分页数据的时候一般都是使用分页存储过程来实现的,本文提供一种通用的分页存储过程,只需要传入 ...

  6. SqlServer分页存储过程(多表查询,多条件排序),Repeater控件呈现数据以及分页

        存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出 ...

  7. 通用sqlserver分页存储过程

    来自:http://www.cnblogs.com/vagerent/archive/2007/10/17/927825.html 单主键: CREATE PROC P_viewPage    /** ...

  8. MYSQL分页存储过程及事务处理

    最近给客户做的一小系统是SQLSERVER的数据库,因为特殊原因要切换到MYSQL上去,切换数据库确实让人头疼的,SQLSERVER和MYSQL的存储过程还是有很大差别的,下面是我做切换时转换的MYS ...

  9. Sqlserver数据库分页查询

    Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询 ...

随机推荐

  1. Unity调用Android Studio中的Java方法

    1. 新建Unity项目: 2. Android Studio中新建EmptyActivity: 3. 新建安卓项目时记住最小版本号: 4. 将左侧项目文件浏览面板切换到Project项下,在本项根节 ...

  2. 【C++】简介

    注意:以下内容摘自文献[1],修改了部分内容. 前言 关于软件产业发展史,不妨访问“首次全面深度解密华为方舟编译器”一文,不仅详细介绍了软件产业的发展,还有华为方舟编译器产生的背景,值得一看! 1. ...

  3. AES128_CBC模式加密

    高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES, ...

  4. JavaScript 简版-菜鸟中的菜鸟

    JavaScript 简介 JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备. JavaScrip ...

  5. 如何在Spring Boot应用启动之后立刻执行一段逻辑

    1. 前言 不知道你有没有接到这种需求,项目启动后立马执行一些逻辑.比如简单的缓存预热,或者上线后的广播之类等等.如果你使用 Spring Boot 框架的话就可以借助其提供的接口CommandLin ...

  6. Java实现蓝桥杯算法提高12-2扑克排序

    扑克牌排序 问题描述 扑克牌排序:构造扑克牌数组,对扑克牌进行排序. 排序原则如下:数字从小到大是2-10.J.Q.K和A,花色从小到大是方块(diamond).梅花(club).红桃(heart). ...

  7. Java实现 洛谷 P1421 小玉买文具

    import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = ...

  8. Java实现 蓝桥杯 历届试题 波动数列

    问题描述 观察这个数列: 1 3 0 2 -1 1 -2 - 这个数列中后一项总是比前一项增加2或者减少3. 栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a或者减少b ...

  9. java实现第六届蓝桥杯三角形面积

    三角形面积 题目描述 如图1所示.图中的所有小方格面积都是1. 那么,图中的三角形面积应该是多少呢? 请填写三角形的面积.不要填写任何多余内容或说明性文字. 28 简单的数学平面几何问题: 大正方形面 ...

  10. Linux rsyslogd日志服务

    日志基本格式 基本日志格式包含四列: 事件发生的时间 发生事件的服务器的主机名 产生事件的服务名或程序名 事件的具体信息 /etc/rsyslog.conf配置文件 mail.*            ...