-- 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. js数组取出非重复元素

    接地气,兼容性好,支持IE8) function diff(arr1,arr2){ var a = []; var b = []; for(var i=0;i<arr2.length;i++){ ...

  2. Istio Sidecar

    概念及示例 Sidecar描述了sidecar代理的配置.默认情况下,Istio 让每个 Envoy 代理都可以访问来自和它关联的工作负载的所有端口的请求,然后转发到对应的工作负载.您可以使用 sid ...

  3. [PHP学习教程 - 网络]003.获得当前访问的页面URL(Current Request URL)

    引言:获取当前请求的URL路径,自动判断协议(HTTP or HTTPS). 一句话的事情,下面直接上高清无MSK的精妙代码! 功能函数 获得当前请求的页面路径(URL)地址 语法:$url = ge ...

  4. toString()方法的使用

    toString()方法: java.lang.Object类的toString()方法的定义如下: public String toString(){ return getClass().getNa ...

  5. 移动端适配-rem(新)

    概念 对于移动端开发来说,无可避免的就是直面各种设备不同分辨率和不同DPR(设备像素比)的问题,在此忽略其他兼容性问题的探讨. 移动端像素 设备像素(dp),也叫物理像素.指设备能控制显示的最小物理单 ...

  6. abp(net core)+easyui+efcore实现仓储管理系统——出库管理之一(四十九)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  7. day1_计算机基础

    一.计算器5大组成:计算机硬件:(计算机是奴隶)         1.五大组成             控制器             运算器             存储器I/O:内存+外存     ...

  8. [03]HTML基础之行内标签

    1.<ruby>标签 显示东亚字符的发音(如中文,日文等),与<rp>,<rt>标签搭配. //<ruby>为单个发音字符的容器,<rp>为 ...

  9. JVM系列.JVM内存模型

    <Java虚拟机规范>将虚拟机的内存分为以下几个区域: 堆区:堆区是JVM中最大的一块内存区域,按照垃圾分代收集的角度划分,又可以分成年轻代和老年代,而年轻代内存又被分成三部分,Eden空 ...

  10. winxp无法访问win10教育版共享资源的问题处理

    一.问题来源: dell5460笔记本上一个winxp系统虚拟机,访问一台lenovoT470笔记本win10教育版系统上的共享资源(使用命令行方式:net use s: \\172.18.45.10 ...