sql2005通用分页存储过程
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
/****** Object: Stored Procedure dbo.p_commonList ******/
/****** Object: Stored Procedure dbo.p_commonList ******/
ALTER PROCEDURE [dbo].[PS_proc_CommonPager]
@tblName varchar(255), -- 表名
@strWhere varchar(1000) = '', -- 查询条件 (注意: 不要加 where)
@fldName varchar(255), -- 字段名
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@IsCount bit = 1 -- 返回记录总数, 非 0 值则返回
AS
declare @strSQL varchar(1000) -- 主语句
declare @strTmp varchar(300) -- 临时变量
declare @strOrder varchar(400) -- 排序类型
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName +'] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * 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) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp = ''
if @strWhere !=''
set @strTmp = ' where ' + @strWhere + ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
if @IsCount != 0
begin
set @strSQL = @strSQL+';select count(*) as Total from [' + @tblName + ']'
if @strWhere !=''
begin
set @strTmp =' where '+ @strWhere
set @strSQL = @strSQL+@strTmp
end
end
exec (@strSQL)
转载于:https://www.cnblogs.com/yy520/p/3203076.html
sql2005通用分页存储过程相关推荐
- 支持DISTINCT的通用分页存储过程(SQL2005)
/****** 对象: StoredProcedure [dbo].[P_CommonPagination] 脚本日期: 07/22/2009 10:22:01 ******/ SET ANSI_NU ...
- 通用分页存储过程(转自邹建)
--TOP n 实现的通用分页存储过程(转自邹建) CREATE PROC sp_PageView @tbname sysname, --要分页显示的表名 @Fie ...
- SQL SERVER 通用分页存储过程
SQL SERVER 通用分页存储过程 从SQLSERVER 2005开始,提供了Row_Number()函数,利用函数生成的Index来处理分页,按照正常的逻辑思维都是传pageIndex和page ...
- Sql Server通用分页存储过程
sql server2000分页方式很多,效率吗 当到达10万级以上就有些吃力了,这里暂时不例出来了 sql server2005以上就有了row_number 也是一大进步,详情如下参考 Sql ...
- 高性能SQLServer通用分页存储过程
这是我之前整理的高性能SQLServer 通用分页存储过程,测试性能还不错,特此分享出来,如果有人能更好地优化,请留言,谢谢! SQL代码 1 USE [数据库名称] 2 GO 3 /***** ...
- 从通用分页存储过程[ROWCOUNT方式]抽出适合自己需求的分页过程
通用分页存储过程很实用,但毕竟不是全适用于一些环境,譬如我遇到过一种情况,需要先外链两个表,然后再关联几个表,总之参数传递很烦人,这里不细说了,现在只谈实现查询后,怎么分页的简单技巧 1,建立用户函数 ...
- 通用分页存储过程(sqlserver)
< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> -- 获取指定页的数据 ...
- Oracle 存储过程之通用分页查询
在数据库中书写通用分页存储过程,有利于代码的维护以及执行效率的提升 create or replace procedure Sp_QueryDatePage (tableName in varchar ...
- 【转】通用sqlserver分页存储过程
单主键: CREATE PROC P_viewPage /**//* nzperfect [no_mIss] 高效通用分页存储过程(双向检索) 2007.5.7 QQ:348 ...
最新文章
- 单片机c语言实现表格数据调用,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
- 程序员内卷的结局 | 每日趣闻
- using bgp data to find spammers
- 《陶哲轩实分析》引理17.2.4证明_导数的唯一性
- Linux命令 比较文件
- 依次输入表(30,15,28,20,24,10,68,35,50)中的元素,生成一棵平衡的二叉排序树。请画出构造过程,并在其中注明每一次平衡化的类型(LL型、RR型、LR型、RL型)
- jvm(2)-java内存区域
- 浏览器访问pdf 的url怎么加密_怎么解决加密的pdf文件?
- 轻量级linux iso,antiX 17.2 发布,基于Debian的轻量级Linux发行版
- soc设计方法与实现_冷轧钢板局部激光热处理实现汽车轻量化设计新方法
- 单片机C语言编程实例分析详解,单片机C语言编程的八个基本规则解析
- Presto 即席查询
- 软件开发人员如何提高个人和团队工作效率
- 集线器、交换机、路由器、中继器及网关、网桥之间的区别
- 音频编解码之 G7221 编码器
- MATLAB2018B下用Faster-RCNN做目标检测的训练和测试步骤
- form表单的action属性设置相对路径
- java计算机毕业设计红色景点自驾游网站管理系统MyBatis+系统+LW文档+源码+调试部署
- 【MySQL】MySQL抖动
- 《信号与系统》——连续傅里叶变换与拉布拉斯变换专题
热门文章
- 详解3种常用数据分析方法,满足你职场95%的高频需求
- 什么是数据、元数据、主数据?这可能是大多数人没看过的解释
- 单链表删除指定节点c语言,在单链表删除指定节点之后的节点
- atr netty长连接_基于Netty实现Web容器Netty版Tomcat(三)
- python消息队列celery_python—Celery异步分布式
- finallshell使用_Finalshell软件安装使用
- 计算机类中外合作办学情况,郑州大学2021年河南省本科一批各专业录取分数统计...
- Goscan:功能强大的交互式网络扫描工具
- pytorch学习笔记(十六):Parameters
- H - Cow Contest(floyd的传递闭包性)