create PROCEDURE [dbo].[Proc_GetPageList]

(
   @Tables varchar(1000),          --表名
   @PK varchar(100),               --主键   
   @Fields varchar(1000) = '*',    --查询的字段
   @SortField varchar(200) = NULL, --排序的字段
   @SortType varchar(10)= 'ASC',   --排序方式
   @PageIndex int = 1,             --页码索引
   @PageSize int = 10,            --页码大小
   @Filter varchar(1000) = NULL,   --过滤条件
   @PageCount int = 1 output,                  ----查询结果分页后的总页数
   @RecordCounts int = 1 output                ----查询到的记录数

)

AS

SET NOCOUNT ON

declare @FieldName nvarchar(50)

declare @SqlSort nvarchar(250)

declare @SqlCount nvarchar(2000)

declare @FromTemp nvarchar(1000)

declare @SqlResult nvarchar(4000)
declare @PageMinBound int

declare @PageMaxBound int

--------首先生成排序方法---------

if @SortType='ASC'  --升序
   begin
      if not(@SortField is null)
     set @SqlSort = ' Order by ' + @SortField
      else
     set @SqlSort = ' Order by ' + @PK
   end

else            --降序
   begin
    if not(@SortField is null)
     set @SqlSort = ' Order by ' + @SortField + ' DESC' 
    else
     set @SqlSort = ' Order by ' + @PK + ' DESC '
   end

--------生成查询语句--------

if @Filter is null or @Filter='' --没有设置显示条件
    begin
    set @FromTemp = ' From ' + @Tables
    end

else
    begin
    set @FromTemp = ' From ' + @Tables + ' where ' + @Filter
    end

set @SqlCount= 'select @RecordCounts=Count(' + @PK + ') '+@FromTemp

----取得查询结果总数量-----
exec sp_executesql @SqlCount,N'@RecordCounts int out ',@RecordCounts out

--取得分页总数

if @RecordCounts<= @PageSize
set @PageCount = 1

else
set @PageCount = (@RecordCounts / @PageSize) + 1

if @PageIndex=1

begin  --第一页用TOP方法来获取当前页记录
  set @SqlResult='select top '+str(@PageSize)+' '+@Fields+' '+@FromTemp+' '+@SqlSort

end

else

begin --用临时表获取当前页计录
   set @PageMinBound=(@Pageindex-1)*@Pagesize
   set @PageMaxBound=@PageMinBound+@Pagesize
   create table #Pageindex (id int identity(1,1) not null,nid int)
   set rowcount @PageMaxBound
   set @SqlResult='insert into #Pageindex(nid) select '+@PK+' '+@FromTemp+' '+@SqlSort
   set @SqlResult=@SqlResult+'   select '+@Fields+' from '+@Tables+'  a,#Pageindex p
    where   a.'+@PK+'=p.nid and p.id>'+str(@PageMinBound)+' and p.id<='+str(@PageMaxBound)

end

print @SqlResult
exec sp_executesql @SqlResult

GO

转载于:https://www.cnblogs.com/DJYBlog/p/3848401.html

sql 2000 分页相关推荐

  1. 曾经用过的Sql Server分页方法小结

    工作这些年, 数据库分页也用过几种方案, 总结如下: 1.用row_number函数及临时表分页, 适用sql 2005/2008. 大致思路如下: SELECT *, ROW_NUMBER() OV ...

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

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

  3. 服务器dbback文件夹,怎么让SQL 2000定时复制备份数据库到局域网中的指定电脑上? - SQL Server论坛 - 51CTO技术论坛_中国领先的IT技术社区...

    如题,这是我在网上找的JOB脚本,试用只能在本地盘符间复制有效,局域网中的共享失效. 系统环境: WIN2K3 SQL 2000 SP4 网络环境: SQL服务器:192.168.1.2 备份服务器: ...

  4. 安装华为T2000软件,无法初始化MS SQL 2000问题解决办法

    安装华为T2000V2系列网管软件后,手工(或自动)安装MS SQL 2000软件,并安装SP4补丁包.再初始化网管数据库的时候提示以下错误: 配置参数 show advanced options = ...

  5. SQL 2000自定义函数调用GETDATE()报错

    在SQL 2000数据库里的自定义函数中调用GETDATE()时,结果编译时报错,提示错误如下:Invalid use of 'getdate' within a function 我给个测试例子如下 ...

  6. 解决hibernate对Sql Server分页慢的问题

    解决hibernate对Sql Server分页慢的问题 参考文章: (1)解决hibernate对Sql Server分页慢的问题 (2)https://www.cnblogs.com/firstd ...

  7. jpa mysql sql分页查询语句_JPA多条件复杂SQL动态分页查询功能

    概述 ORM映射为我们带来便利的同时,也失去了较大灵活性,如果SQL较复杂,要进行动态查询,那必定是一件头疼的事情(也可能是lz还没发现好的方法),记录下自己用的三种复杂查询方式. 环境 spring ...

  8. [资料]有关MS SQL 2000安全问题

    Baidu Search ms sql 2000安全 SQLServer2000的安全配置 SQL Server 2000的安全配置 Mssql和Mysql的安全性分析

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

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

最新文章

  1. MongoDB修改器的使用1
  2. Web App适配iPhoneX
  3. canvas——橡皮筋式线条绘图应用
  4. comet 异步请求技术中相关关键字解释 (新手向)
  5. 让Tee 7.x版本和FastReport 3.x版本共存
  6. 5920. 分配给商店的最多商品的最小值
  7. XML文档处理(树的应用)
  8. python 近期用到的基础知识汇总(六)
  9. php html_entity_decode使用总结
  10. linux根据端口号找目录,Linux通过程序端口寻找程序路径
  11. 基于opengl编写简单的二维绘图软件
  12. Linux环境下Python操作word
  13. 记用Fiddler抓包爬取pc端微信公众号文章
  14. 易优EyouCMS手机端url路径改为/mobile/方案(非自带m.xxx.com二级域名方案)
  15. 将SVG文件转换为XML文件
  16. Anaconda下载及安装保姆级教程(详细图文)
  17. Autodesk Alias AutoStudio 2021.3.1
  18. vue+ol实现 ol 地图加载geojson
  19. 罗马数字转换成阿拉伯数字
  20. image 微信小程序flex_微信小程序入门教程之二:页面样式

热门文章

  1. 字体设置_Endnote教程|字体设置
  2. php pdo 怎么循环,php – 在循环内绑定PDO语句的参数
  3. php中echo js代码,JS有没类似PHP的echo效果?
  4. python getattr_Python中的getattr()函数详解
  5. 三菱变频器e700参数表_三菱Q系列PLC,用CCLink控制变频器正反转和多段速
  6. 单元测试 applicationinfomanager bean无法注入_你真的会用Spring吗?如何在单例Bean中注入原型Bean...
  7. git 拉取远端仓库_Git : 建立自己的本地仓库,并拉取远程代码
  8. 【星球知识卡片】图像生成都有哪些核心技术,如何对其进行长期深入学习
  9. 【通知】有三个人指导以及VIP星球6月份之后升级,你的专属AI顾问了解一下
  10. 有三AI小程序上线,把你的代码show给世界