-- 获取指定页的数据
CREATE PROCEDURE pagination
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) = '*', -- 需要返回的列
@fldName varchar(255)='', -- 排序的字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@doCount bit = 0, -- 返回记录总数, 非 0 值则返回
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1500) = '' -- 查询条件 (注意: 不要加 where)
AS

declare @strSQL varchar(5000) -- 主语句
declare @strTmp varchar(110) -- 临时变量
declare @strOrder varchar(400) -- 排序类型
if @doCount != 0
begin
if @strWhere !=''
set @strSQL = "select count(*) as Total from [" + @tblName + "] where "+@strWhere
else
set @strSQL = "select count(*) as Total from [" + @tblName + "]"
end
--以上代码的意思是如果@doCount传递过来的不是0,就执行总数统计。以下的所有代码都是@doCount为0的情况

else
begin
if @OrderType != 0
begin
set @strTmp = "<(select min"
set @strOrder = " order by [" + @fldName +"] desc"
--如果@OrderType不是0,就执行降序,这句很重要!
end

else
begin
set @strTmp = ">(select max"
set @strOrder = " order by [" + @fldName +"] asc"
end
if @PageIndex = 1
begin
if @strWhere != ''
set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from [" + @tblName + "] where " + @strWhere + " " + @strOrder
else
set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from ["+ @tblName + "] "+ @strOrder
--如果是第一页就执行以上代码,这样会加快执行速度
end

else
begin
--以下代码赋予了@strSQL以真正执行的SQL代码
set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from ["
+ @tblName + "] where [" + @fldName + "]" + @strTmp + "(["+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["+ @fldName + "] from [" + @tblName + "]" + @strOrder + ") as tblTmp)"+ @strOrder
if @strWhere != ''
set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from ["
+ @tblName + "] where [" + @fldName + "]" + @strTmp + "(["
+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
+ @fldName + "] from [" + @tblName + "] where " + @strWhere + " "
+ @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder
end
end
exec (@strSQL)
GO

高效分页存储过程代码相关推荐

  1. oracle万能分页代码,oracle高效分页存储过程代码

    oracle高效分页存储过程代码 create or replace package p_page is -- author : pharaohs -- created : 2006-4-30 14: ...

  2. SQL2005结合ROW_NUMBER()高效分页存储过程

    SQL2005结合ROW_NUMBER()高效分页存储过程: CREATE PROCEDURE [dbo].[sp_Accounts_GetUserListPaged]     @PageIndex ...

  3. oracle如何高效分页,oracle学习之高效分页存储过程实例

    oracle学习之高效分页存储过程实例 时间:2017-07-11 来源: create or replace package p_page is -- Author : PHARAOHS -- Cr ...

  4. mysql 高效分页存储过程_mysql分页存储过程

    CREATE PROCEDURE 'sp_page'( in _pagecurrent int,--/*当前页*/ in _pagesize int,--/*每页的记录数*/ in _ifelse v ...

  5. ajax高效分页查询,基于 Jquery+Ajax+Json高效分页实现代码

    代码如下 using System; using System.Web; using System.Data.SqlClient; using System.Data; using System.Co ...

  6. Oracle高效分页存储过程实例

    create or replace package p_page is -- Author : PHARAOHS -- Created : 2006-4-30 14:14:14 -- Purpose ...

  7. oracle分页处理实例,Oracle高效分页存储过程实例

    create or replace package p_page is -- Author : PHARAOHS -- Created : 2006-4-30 14:14:14 -- Purpose ...

  8. (转)大数据量分页存储过程效率测试附代码

    大数据量分页存储过程效率测试附代码 在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下,哪种分页算法效率最优呢?我们不妨用事实说话. 测试环境 硬件:CPU 酷睿双核T5750  内存: ...

  9. mysql分页存储过程 分页查询语句_分页存储过程(用存储过程实现数据库的分页代码)...

    用存储过程实现数据库的分页代码,加快页面执行速度.具体的大家可以测试下. --******************************************************* --* 分 ...

最新文章

  1. 人体姿态估计--Learning Feature Pyramids for Human Pose Estimation
  2. C#数据库(MySQL)帮助类
  3. 计算机显示网络地址,u盘装系统win7打开电脑显示正在获取网络地址怎么处理
  4. VTK修炼之道30:图像重采样_降采样和升采样技术
  5. HTTP电脑发送短信接口调用示例
  6. python闭包两种写法_浅析Python闭包
  7. 操作系统知识点大总结【进线程管理与调度】
  8. 网站使用思源黑体siyuanheiti
  9. 直方图均衡化的数学原理
  10. 前端Svelte框架初体验
  11. 新昌中学2021高考成绩查询,新昌中学教育集团向2020年参加高考被第一批录取的553名学子表示热烈祝贺...
  12. 使用 AES 对称加密算法对视频文件进行加密解密(C++ 及 Java 实现)
  13. 通过 ICMP 协议实现 Ping Tunnel 建立可穿透网络隧道
  14. 【深度学习】:详解目标检测YOLO V1(You Only Look Once)算法
  15. Bootstrap抽样和Monte Carlo思想
  16. 苹果x看html文字有黑线,iPhonex屏幕旁边出现绿线怎么回事 iPhonex屏幕旁边绿线是什么问题...
  17. 在苹果Mac上如何关闭触控板防止误触?
  18. 3dsMax撤销不管用,3dsMax转成多边形之后无法撤回操作,3dsmax的操作步骤一直为空
  19. Java中的门面设计模式
  20. ASLR(地址空间随机化)

热门文章

  1. php wiki搭建,wiki网站搭建
  2. css3动画保持状态不变
  3. c语言怎么运行出星星,C语言打印星星的问题
  4. mac修改php配置文件,MAC下通过改apache配置文件切换php多版本的方法
  5. AWS服务器可以设置虚拟ip吗,《AWS云计算实战》3.使用虚拟服务器:EC2
  6. 执行虚拟化软件测试程序的物理机,虚拟化技术试题教案.docx
  7. python fortran混合编程_python fortran c 混合编程
  8. access后台链接mysql_Access为后台数据库的网站统计系统
  9. sublime Text3安装可以使xml格式化的插件
  10. kafka性能高的影响因素