alter PROCEDURE [dbo].[PR_PageDivide]
(
@TableName varchar(50), --表名
@SelectField varchar(200) = '*', --字段名(全部字段为*)
@OrderString varchar(200), --排序字段(必须!支持多字段不用加order by)
@WhereString varchar(500) =N'', --条件语句(不用加where)
@PageSize int = 15, --每页多少条记录
@PageIndex int = 1 , --指定当前为第几页
@TotalPages int output --返回总页数
)
AS

BEGIN
if @PageIndex<=0
set @PageIndex=1
if @PageSize<0
set @PageSize=15
--处理开始点和结束点
Declare @TotalRecord int
Declare @StartRecord int;
Declare @EndRecord int;
Declare @TotalCountSql nvarchar(500);
Declare @SqlString nvarchar(2000);
set @StartRecord = (@PageIndex-1)*@PageSize + 1
set @EndRecord = @StartRecord + @PageSize - 1
SET @TotalCountSql= N'select @TotalRecord = count(*) from ' + @TableName;--总记录数语句
SET @SqlString = N'(select row_number() over (order by '+ @OrderString +') as rowId,'+@SelectField+' from '+ @TableName;--查询语句
--
IF (@WhereString! = '' or @WhereString!=null)
BEGIN
SET @TotalCountSql=@TotalCountSql + ' where '+ @WhereString;
SET @SqlString =@SqlString+ ' where '+ @WhereString;
END
EXEC sp_executesql @totalCountSql,N'@TotalRecord int out',@TotalRecord output;--返回总记录数
select @TotalPages=CEILING((@TotalRecord+0.0)/@PageSize)
set @SqlString ='select * from ' + @SqlString + ') as t where rowId between ' + ltrim(str(@StartRecord)) + ' and ' + ltrim(str(@EndRecord));
Exec(@SqlString)
END

转载于:https://www.cnblogs.com/liuwenlong/archive/2011/03/16/1986485.html

MS SQL SERVER2005 分页存储过程相关推荐

  1. MS SQL Server2005存储过程、游标、游标嵌套综合例子

    MS SQL Server2005存储过程.游标.游标嵌套综合例子: 放在这里备忘>>> Java代码 create proc decisionPathRefSchemes as b ...

  2. SQL Server分页存储过程实践(图解)

    下面来对SQL Server分页存储过程进行一下实做.图解成功的各个步骤. 一 找到大数据量的示例表 分页都是针对大记录数的表:反之有大记录数的表,可能就需要分页.例如银行用户表,就会上千万.下面先做 ...

  3. 优化的ms sql server分页sql语句

    优化的ms sql server分页sql语句 发布时间: 2009-8-15 00:00 |  发布作者: hjh |   |  查看: 3次 特点:一次查询,数据库Databnse只返回一页的数据 ...

  4. 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...

    作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...

  5. MS SQL SERVER2005更新触发器

    MS SQL SERVER2005更新触发器 为记录表test1中T01字段由'0'更新为'1'的发生时间,增加UPDATE触发器. SET ANSI_NULLS ON GO SET QUOTED_I ...

  6. 一个sql server2005分页的存储过程

    --sql server 分页语句 --首先创建一个测试用的表,并且插入一些测试数据 if exists (select * from sysobjects where name='test')    ...

  7. C#调用SQL Server分页存储过程

    以SQL Server2012提供的offset ..rows fetch next ..rows only为例 e.g. 表名:Tab1 ------------------------------ ...

  8. [转]Sql Server 分页存储过程

    本文转自: 版权声明:作者:jiankunking 出处:http://blog.csdn.net/jiankunking  本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且 ...

  9. MS SQL入门基础:存储过程概述

    在大型数据库系统中,存储过程和触发器具有很重要的作用.无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合.就 本质而言,触发器也是一种存储过程.存储过程在运算时生成执行方式,所以,以后对其 ...

最新文章

  1. zend studio 8安装与汉化
  2. Config程序配置文件操作实践进阶之ConfigurationSectionGroup
  3. 运维基础(8)shell脚本
  4. 数据结构(算法)-线性表2(单链表)
  5. C语言中巧妙的使用#和##
  6. xshell连接突然报Connection closed by foreign host.
  7. 编程行业高手级别必学C语言,要挣大钱必学C语言,要做黑客、红客必学C语言,要面试名企、外企、高薪职位必学C语言。
  8. react 用html插件,VSCode拓展插件推荐(HTML、Node、Vue、React开发均适用)-Go语言中文社区...
  9. CSS 魔法系列:纯 CSS 绘制各种图形《系列五》
  10. Python老师遇到的那些无语的问题
  11. 【论文笔记】中文词向量论文综述(一)
  12. 支付那些事儿III---一个BD汪眼中的产品II
  13. Bash之正则表达式
  14. 游戏平台搭建免费版教程
  15. Excel 导入 SqlServer 导入部分文本为空解决方案
  16. 【QT】QT网络编程简介
  17. 使用Python的basemap模块绘制地图的局部放大图(主图及放大的子图)
  18. apkg格式怎么打开_pdf怎么转换成word?妙招在手,转换不愁!
  19. Python — sklearn 分类效果评估
  20. 国民技术计划1.4亿入股华夏芯

热门文章

  1. Visual Studio的一些快捷键(转载)
  2. 如何把一个程序中 Edit 中的文本赋给另一个程序的 Edit ? - 回复 Disk_ 的问题
  3. MP4移动商学院―――管理者贴身教练!
  4. 查看本机中的python第三方库文档
  5. 如何同时安装Office2003和Office2007!
  6. Ubuntu中的root权限
  7. POJ 2187 Beauty Contest( 凸包求最远点对 )
  8. 管好统计信息,开启SQL优化之门
  9. 12C -- DDL日志
  10. 文件压缩和文件打包命令