高效分页存储过程代码
-- 获取指定页的数据
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
高效分页存储过程代码相关推荐
- oracle万能分页代码,oracle高效分页存储过程代码
oracle高效分页存储过程代码 create or replace package p_page is -- author : pharaohs -- created : 2006-4-30 14: ...
- SQL2005结合ROW_NUMBER()高效分页存储过程
SQL2005结合ROW_NUMBER()高效分页存储过程: CREATE PROCEDURE [dbo].[sp_Accounts_GetUserListPaged] @PageIndex ...
- oracle如何高效分页,oracle学习之高效分页存储过程实例
oracle学习之高效分页存储过程实例 时间:2017-07-11 来源: create or replace package p_page is -- Author : PHARAOHS -- Cr ...
- mysql 高效分页存储过程_mysql分页存储过程
CREATE PROCEDURE 'sp_page'( in _pagecurrent int,--/*当前页*/ in _pagesize int,--/*每页的记录数*/ in _ifelse v ...
- ajax高效分页查询,基于 Jquery+Ajax+Json高效分页实现代码
代码如下 using System; using System.Web; using System.Data.SqlClient; using System.Data; using System.Co ...
- Oracle高效分页存储过程实例
create or replace package p_page is -- Author : PHARAOHS -- Created : 2006-4-30 14:14:14 -- Purpose ...
- oracle分页处理实例,Oracle高效分页存储过程实例
create or replace package p_page is -- Author : PHARAOHS -- Created : 2006-4-30 14:14:14 -- Purpose ...
- (转)大数据量分页存储过程效率测试附代码
大数据量分页存储过程效率测试附代码 在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下,哪种分页算法效率最优呢?我们不妨用事实说话. 测试环境 硬件:CPU 酷睿双核T5750 内存: ...
- mysql分页存储过程 分页查询语句_分页存储过程(用存储过程实现数据库的分页代码)...
用存储过程实现数据库的分页代码,加快页面执行速度.具体的大家可以测试下. --******************************************************* --* 分 ...
最新文章
- 人体姿态估计--Learning Feature Pyramids for Human Pose Estimation
- C#数据库(MySQL)帮助类
- 计算机显示网络地址,u盘装系统win7打开电脑显示正在获取网络地址怎么处理
- VTK修炼之道30:图像重采样_降采样和升采样技术
- HTTP电脑发送短信接口调用示例
- python闭包两种写法_浅析Python闭包
- 操作系统知识点大总结【进线程管理与调度】
- 网站使用思源黑体siyuanheiti
- 直方图均衡化的数学原理
- 前端Svelte框架初体验
- 新昌中学2021高考成绩查询,新昌中学教育集团向2020年参加高考被第一批录取的553名学子表示热烈祝贺...
- 使用 AES 对称加密算法对视频文件进行加密解密(C++ 及 Java 实现)
- 通过 ICMP 协议实现 Ping Tunnel 建立可穿透网络隧道
- 【深度学习】:详解目标检测YOLO V1(You Only Look Once)算法
- Bootstrap抽样和Monte Carlo思想
- 苹果x看html文字有黑线,iPhonex屏幕旁边出现绿线怎么回事 iPhonex屏幕旁边绿线是什么问题...
- 在苹果Mac上如何关闭触控板防止误触?
- 3dsMax撤销不管用,3dsMax转成多边形之后无法撤回操作,3dsmax的操作步骤一直为空
- Java中的门面设计模式
- ASLR(地址空间随机化)
热门文章
- php wiki搭建,wiki网站搭建
- css3动画保持状态不变
- c语言怎么运行出星星,C语言打印星星的问题
- mac修改php配置文件,MAC下通过改apache配置文件切换php多版本的方法
- AWS服务器可以设置虚拟ip吗,《AWS云计算实战》3.使用虚拟服务器:EC2
- 执行虚拟化软件测试程序的物理机,虚拟化技术试题教案.docx
- python fortran混合编程_python fortran c 混合编程
- access后台链接mysql_Access为后台数据库的网站统计系统
- sublime Text3安装可以使xml格式化的插件
- kafka性能高的影响因素