/**//*
******************************************************************************************
  过程名称:Common_Percent_Pagination
  过程功能:
  代码设计:小朱(zsy619@163.com)
  设计时间:2005-11-3 13:58:26
******************************************************************************************
  功能描述:

******************************************************************************************
  如果您修改了我的程序,请留下修改记录,以便对程序进行维护,谢谢  !!!
==========================================================================================
  修改人            修改时间                修改原因
------------------------------------------------------------------------------------------

==========================================================================================

******************************************************************************************
  备注:
*****************************************************************************************
*/
Create Procedure [dbo].[Common_Percent_Pagination]
    @TBName NVARCHAR(255) ,
    @SQL nVARCHAR(4000),    --不带排序语句的SQL语句
    @Page int,              --页码
    @RecsPerPage int,       --每页容纳的记录数
    @ID VARCHAR(255),       --需要排序的不重复的ID号
    @Sort VARCHAR(255) ,     --排序字段及规则
    @PageCount INT OUTPUT          --总页数
AS
    Declare @intResult Int
    Begin Tran
    -----------------------------------------------------------------代码设计--------------------------------------------------------------------
    DECLARE @sql1 nvarchar(4000)
    SET @sql1=N'SELECT @PageCount=COUNT(*)'
        +N' FROM '+@tbname  
    EXEC sp_executesql @sql1,N'@PageCount int OUTPUT',@PageCount OUTPUT
    SET @PageCount=(@PageCount+@RecsPerPage-1)/@RecsPerPage
    DECLARE @Str nVARCHAR(4000) 
    SET @Str='SELECT   TOP '+CAST(@RecsPerPage AS VARCHAR(20))+' * FROM ('+@SQL+') T WHERE T.'+@ID+' NOT IN (SELECT   TOP '+CAST((@RecsPerPage*(@Page-1)) AS VARCHAR(20))+' '+@ID+' FROM ('+@SQL+') T9 ORDER BY '+@Sort+') ORDER BY '+@Sort 
    --PRINT @Str 
    --EXEC sp_ExecuteSql @Str
    --EXEC @Str
    DECLARE @Str1 NVARCHAR(400)
    DECLARE @Str2 NVARCHAR(400)
    SET @Str1 = CAST(@RecsPerPage AS VARCHAR(20))
    SET @Str2 = CAST((@RecsPerPage*(@Page-1)) AS VARCHAR(20))
    EXEC ( N'SELECT   TOP '+@Str1+ N' * FROM ('+@SQL+N') T WHERE T.'+@ID+N' NOT IN (SELECT   TOP '+@Str2+N' '+@ID+N' FROM ('+@SQL+N') T9 ORDER BY '+@Sort+N') ORDER BY '+@Sort )
    Set @intResult = @@ROWCOUNT
    ----------------------------------------------------------------------------------------------------------------------------------------------------
    If @@Error <> 0
    Begin
        RollBack Tran
        Return -1
    End
    Else
    Begin
        Commit Tran
        Return @intResult
    End
GO

数据库分页存储过程(5)相关推荐

  1. 数据库分页存储过程(4)

    /**//* ******************************************************************************************    ...

  2. oracle千万级分页优化,oracle千万级数据分页存储过程优化

    随着数据量的增加,Oracle数据库分页存储过程(使用rownum分页)查询性能越来越差,查询时间也越来越长,于是优化势在必行,结合用户一般使用特点(一般看前几页的较多),于是以此为切入点优化原先的存 ...

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

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

  4. cyq.data mysql_CYQ.Data 数据框架 数据库分页方式及存储过程[SQL2000/SQL2005/Oracle]

    在 CYQ.Data 分页是内部集成的功能,针对不同的数据库,使用不同的分页形式. 1:Access:集成:使用3次Top分页 2:MySql:集成,使用LimitN分页 3:Sqlite:集成,使用 ...

  5. C#.NET SQLServer数据库分页函数,包含存储过程和C#代码

    -- ============================================= -- Create date: <2012-9-12> -- Description: & ...

  6. 分页存储过程性能比较 二分法

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

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

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

  8. 浅谈SQL Server数据库分页

    数据库分页是老生常谈的问题了.如果使用ORM框架,再使用LINQ的话,一个Skip和Take就可以搞定.但是有时由于限制,需要使用存储过程来实现.在SQLServer中使用存储过程实现分页的已经有很多 ...

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

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

最新文章

  1. 微服务如何设计一个配置中心
  2. 算法-----三数之和等于0
  3. java设计模式-建造者模式
  4. CSS 详细解读定位属性 position 以及参数
  5. 【学术相关】魔术乘法:张成奇教授40年磨一剑!
  6. IT职场人生系列之五:怎样面试
  7. 谷歌浏览器32位版本安装包_Windows 10 OEM渠道告别32位版本 这意味着什么?
  8. FeignClient调用服务及上传文件的注意点及问题
  9. wind 下装mysql,windows 下安装MySQL
  10. 糖果传递(信息学奥赛一本通-T1432)
  11. Hive 时间戳和日期相互转换
  12. mysql alter 语句用法,添加、修改、删除字段等
  13. 网络信息如此庞杂,人工智能助你验明真伪
  14. mysql的时间在cmd的输入格式_获取“System.FormatException:输入字符串的格式不正确。”在日期时间对象插入到MySql数据库...
  15. 苹果电脑查看python版本_Mac 如何修改系统默认 Python 版本?
  16. VALSE学习(十七):VALSE 2019报告总结
  17. 基于注解的 Spring MVC 简单入门
  18. Centos7.x 装机优化
  19. 一些TC内置的环境环境变量(注意字母必须大写,且只能在TC内用)
  20. 如何禁用或重新启用计算机的休眠功能

热门文章

  1. 观察者模式(Observer Pattern)
  2. 关于 top、left 结合 translate 实现居中的原理探讨
  3. 慎重选型:PG还是MySQL?Uber的案例不能作为参考!
  4. jQuery选择器回顾,IE8还需要你发光发热
  5. C# IP地址与数字之间的互转
  6. Linux笔记1- 6 --文件
  7. 单例模式 - 深究剖析
  8. 如何关闭Visual Assist?
  9. zabbix自动化监控8(2.4)
  10. Java 8新特性探究(6):泛型的目标类型推断