通用的分页存储过程(少量代码实现)
毕竟人家 都有提出要求了 我当然要写出处了 好好研究一下得
通用的分页存储过程,效率高。在SQL Server2000/2005上调试通过。
-- Author: <张婷婷>
-- Create date: <2006-08-24>
-- Description: <通用分页存储过程>
-- =============================================
Create PROCEDURE [dbo].[spCommonPageData]
@Select NVARCHAR(500), -- 要查询的列名,用逗号隔开(Select后面From前面的内容)
@From NVARCHAR(200), -- From后的内容
@Where NVARCHAR(500) = NULL, -- Where后的内容
@OrderBy NVARCHAR(100) = NULL, -- 排序字段
@Key NVARCHAR(50), -- 分页主键
@Page INT, -- 当前页 ***计数从1开始***
@PageSize INT, -- 每页大小
@TotalCount INT OUTPUT, -- 总记录数
@Result TINYINT OUTPUT -- 执行是否成功
AS
BEGIN
SET NOCOUNT ON;
Declare @Sql nVarchar(1000), @Sql2 NVARCHAR(500)
--Alter By Tracy.Chuang 2006-08-21更改分页算法,采用比较最大值的方法
Set @Sql=
'Select Top '+Cast(@PageSize As
nVarchar(10))+' '+@Select+ ' From '+@From+ ' Where '+Case
IsNull(@Where,'') When '' Then '' Else @Where+' And ' End+
@Key+' >( Select ISNULL(MAX('+@Key+'), 0) AS MaxID
From (Select Top '+Cast(@PageSize*(@Page-1) As Varchar(10))+'
'+@Key+
' From '+@From+
Case IsNull(@Where,'') When '' Then '' Else ' Where '+@Where End+
' Order By '+@Key+') As T)'+
' Order By '+@Key+Case IsNull(@OrderBy,'') When '' Then '' Else
','+@OrderBy End
Exec(@Sql)
Set @Sql2='Select 1 As Count From '+@From+Case IsNull(@Where,'') When
'' Then '' Else ' Where '+@Where End
Exec(@Sql2)
SET @TotalCount = @@ROWCOUNT
SET @Result = 0
END
转载于:https://www.cnblogs.com/zbqy/archive/2007/03/29/693380.html
通用的分页存储过程(少量代码实现)相关推荐
- 【转】通用sqlserver分页存储过程
单主键: CREATE PROC P_viewPage /**//* nzperfect [no_mIss] 高效通用分页存储过程(双向检索) 2007.5.7 QQ:348 ...
- 通用sqlserver分页存储过程
单主键: CREATE PROC P_viewPage/**//*nzperfect [no_mIss] 高效通用分页存储过程(双向检索) 2007.5.7 QQ:34813284敬告:适用于单一主键 ...
- 千万级通用的分页存储过程
第一个方法: /* 经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒,测试语法如下: e ...
- SQL Server分页存储过程实践(图解)
下面来对SQL Server分页存储过程进行一下实做.图解成功的各个步骤. 一 找到大数据量的示例表 分页都是针对大记录数的表:反之有大记录数的表,可能就需要分页.例如银行用户表,就会上千万.下面先做 ...
- 高性能SQLServer通用分页存储过程
这是我之前整理的高性能SQLServer 通用分页存储过程,测试性能还不错,特此分享出来,如果有人能更好地优化,请留言,谢谢! SQL代码 1 USE [数据库名称] 2 GO 3 /***** ...
- [百万级]通用存储过程.分页存储过程
/* 名称:spAll_ReturnRows 输入: 输出: 调用: EXEC spAll_ReturnRows 'SELECT * FROM 表名', 页号, 返回记录数, '主键', ...
- 通用分页存储过程(转自邹建)
--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 ...
- mysql分页存储过程 分页查询语句_分页存储过程(用存储过程实现数据库的分页代码)...
用存储过程实现数据库的分页代码,加快页面执行速度.具体的大家可以测试下. --******************************************************* --* 分 ...
最新文章
- python电脑配置要求-1.安装python3.5及电脑环境变量的配置
- java基础(七) java四种访问权限
- 看动画学算法系列之:后缀树suffix tree
- Webpack搭建ES6开发环境步骤
- 数据结构与算法--Tree(二叉树、B±树、红黑树)
- 转眼人到中年:前端老程序员无法忘怀的一次百度电话面试(二)
- 微信小程序API之showModal(Loding...)
- Windows环境zip版PostgreSQL数据库安装
- RazorPage介绍(一)
- 椭球拟合的电子罗盘磁差补偿_NXP传感器融合笔记09(地磁,干扰及校准,椭球拟合)...
- COSC1076_assignment2_221
- zen-cart修改 zencart 模板修改
- 自己搭建无线音乐服务器,建立自己的音乐库 Aurender ACS10 音乐服务器
- 复制csdn或者博客园文章时,图片无法直接粘贴过来解决办法
- 机器学习:CS 229 - Machine Learning - Supervised Learning cheatsheet
- w7电脑蓝屏怎么解决_电脑蓝屏怎么解决win7
- python-面向对象的编程
- 利用七牛云如何上传图片制作外链?
- 对PyTorch的dim的理解
- 关于拆项,有理函数积分,留数法
热门文章
- SpringMVC学习(四)结果跳转的方式:转发和重定向
- 计算机协议-http
- 锐捷服务器有什么型号,锐捷管理服务器RG-RCMS-16
- 惠普电脑怎么用access_学习如何使用access帮助系统
- php smarty 后台,smarty后台文件常用方法及说明
- headerutf php_php header设置编码的方法
- pve网卡直通虚拟机pve失联打不开解决方案,不用重新安装pve
- c# 如何抓微信把柄_抓住把柄表情包 - 抓住把柄微信表情包 - 抓住把柄QQ表情包 - 发表情 fabiaoqing.com...
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_6、SpringBoot2.xHTTP请求配置讲解...
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_13 课程知识梳理