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通用分页存储过程相关推荐

  1. 支持DISTINCT的通用分页存储过程(SQL2005)

    /****** 对象: StoredProcedure [dbo].[P_CommonPagination] 脚本日期: 07/22/2009 10:22:01 ******/ SET ANSI_NU ...

  2. 通用分页存储过程(转自邹建)

    --TOP n 实现的通用分页存储过程(转自邹建) CREATE PROC sp_PageView @tbname     sysname,               --要分页显示的表名 @Fie ...

  3. SQL SERVER 通用分页存储过程

    SQL SERVER 通用分页存储过程 从SQLSERVER 2005开始,提供了Row_Number()函数,利用函数生成的Index来处理分页,按照正常的逻辑思维都是传pageIndex和page ...

  4. Sql Server通用分页存储过程

    sql server2000分页方式很多,效率吗  当到达10万级以上就有些吃力了,这里暂时不例出来了 sql server2005以上就有了row_number 也是一大进步,详情如下参考 Sql ...

  5. 高性能SQLServer通用分页存储过程

    这是我之前整理的高性能SQLServer 通用分页存储过程,测试性能还不错,特此分享出来,如果有人能更好地优化,请留言,谢谢! SQL代码  1 USE [数据库名称]  2 GO  3 /***** ...

  6. 从通用分页存储过程[ROWCOUNT方式]抽出适合自己需求的分页过程

    通用分页存储过程很实用,但毕竟不是全适用于一些环境,譬如我遇到过一种情况,需要先外链两个表,然后再关联几个表,总之参数传递很烦人,这里不细说了,现在只谈实现查询后,怎么分页的简单技巧 1,建立用户函数 ...

  7. 通用分页存储过程(sqlserver)

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> -- 获取指定页的数据 ...

  8. Oracle 存储过程之通用分页查询

    在数据库中书写通用分页存储过程,有利于代码的维护以及执行效率的提升 create or replace procedure Sp_QueryDatePage (tableName in varchar ...

  9. 【转】通用sqlserver分页存储过程

    单主键: CREATE PROC P_viewPage     /**//*         nzperfect [no_mIss] 高效通用分页存储过程(双向检索) 2007.5.7  QQ:348 ...

最新文章

  1. 单片机c语言实现表格数据调用,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
  2. 程序员内卷的结局 | 每日趣闻
  3. using bgp data to find spammers
  4. 《陶哲轩实分析》引理17.2.4证明_导数的唯一性
  5. Linux命令 比较文件
  6. 依次输入表(30,15,28,20,24,10,68,35,50)中的元素,生成一棵平衡的二叉排序树。请画出构造过程,并在其中注明每一次平衡化的类型(LL型、RR型、LR型、RL型)
  7. jvm(2)-java内存区域
  8. 浏览器访问pdf 的url怎么加密_怎么解决加密的pdf文件?
  9. 轻量级linux iso,antiX 17.2 发布,基于Debian的轻量级Linux发行版
  10. soc设计方法与实现_冷轧钢板局部激光热处理实现汽车轻量化设计新方法
  11. 单片机C语言编程实例分析详解,单片机C语言编程的八个基本规则解析
  12. Presto 即席查询
  13. 软件开发人员如何提高个人和团队工作效率
  14. 集线器、交换机、路由器、中继器及网关、网桥之间的区别
  15. 音频编解码之 G7221 编码器
  16. MATLAB2018B下用Faster-RCNN做目标检测的训练和测试步骤
  17. form表单的action属性设置相对路径
  18. java计算机毕业设计红色景点自驾游网站管理系统MyBatis+系统+LW文档+源码+调试部署
  19. 【MySQL】MySQL抖动
  20. 《信号与系统》——连续傅里叶变换与拉布拉斯变换专题

热门文章

  1. 详解3种常用数据分析方法,满足你职场95%的高频需求
  2. 什么是数据、元数据、主数据?这可能是大多数人没看过的解释
  3. 单链表删除指定节点c语言,在单链表删除指定节点之后的节点
  4. atr netty长连接_基于Netty实现Web容器Netty版Tomcat(三)
  5. python消息队列celery_python—Celery异步分布式
  6. finallshell使用_Finalshell软件安装使用
  7. 计算机类中外合作办学情况,郑州大学2021年河南省本科一批各专业录取分数统计...
  8. Goscan:功能强大的交互式网络扫描工具
  9. pytorch学习笔记(十六):Parameters
  10. H - Cow Contest(floyd的传递闭包性)