SQL Server 2005 分页存储过程

简介:

支持:多表连接查询、Group by分组查询等。(多表连接查询时请指定字段,不要用SELECT *)
返回为一结果集,有一个输出参数为记录总数,配合AspNetPager控件使用绝配。
转载请注明出处,欢迎讨论Pk。

CREATE   PROCEDURE  web_pager (
    
@rowsTotal   INT  OUTPUT,             -- 输出记录总数
     @tableName   VARCHAR ( 800 ),         -- 表名
     @fieldName   VARCHAR ( 800 ),         -- 查询字段
     @keyName   VARCHAR ( 200 ),             -- 索引字段
     @pageSize   INT ,                     -- 每页记录数
     @pageNow   INT ,                     -- 当前页
     @stringOrder   VARCHAR ( 200 ),         -- 排序条件
     @stringWhere   VARCHAR ( 800 )         -- WHERE条件
)
AS
BEGIN
     
DECLARE   @beginRow   INT
     
DECLARE   @endRow   INT
     
DECLARE   @tempLimit   VARCHAR ( 200 )
     
DECLARE   @tempCount   NVARCHAR ( 1000 )
     
DECLARE   @tempMain   VARCHAR ( 1000 )

     
SET   @beginRow   =  ( @pageNow   -   1 *   @pageSize      +   1
     
SET   @endRow   =   @pageNow   *   @pageSize
     
SET   @tempLimit   =   ' rows BETWEEN  '   +   CAST ( @beginRow   AS   VARCHAR + '  AND  ' + CAST ( @endRow   AS   VARCHAR )
     
     
-- 输出参数为总记录数
      SET   @tempCount   =   ' SELECT @rowsTotal = COUNT(*) FROM (SELECT  ' + @keyName + '  FROM  ' + @tableName + '  WHERE  ' + @stringWhere + ' ) AS my_temp '
     
EXECUTE  sp_executesql  @tempCount ,N ' @rowsTotal INT OUTPUT ' , @rowsTotal  OUTPUT
       
     
-- 主查询返回结果集
      SET   @tempMain   =   ' SELECT * FROM (SELECT ROW_NUMBER() OVER ( ' + @stringOrder + ' ) AS rows , ' + @fieldName + '  FROM  ' + @tableName + '  WHERE  ' + @stringWhere + ' ) AS main_temp WHERE  ' + @tempLimit
     
EXECUTE  ( @tempMain )
END
本文转自chy710博客园博客,原文链接:http://www.cnblogs.com/chy710/archive/2008/05/15/1198202.html ,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
27天前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
46 0
|
27天前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
36 0
|
27天前
|
SQL 人工智能 算法
【数据库SQL server】传统运算符与专门运算符
【数据库SQL server】传统运算符与专门运算符
17 0
|
27天前
|
SQL 数据库 数据安全/隐私保护
【操作宝典】SQL巨擘:掌握SQL Server Management的终极秘籍!
【操作宝典】SQL巨擘:掌握SQL Server Management的终极秘籍!
36 0
|
29天前
|
SQL 流计算
Flink CDC 1.12版本引入了对SQL Server的支持
【1月更文挑战第26天】【1月更文挑战第124篇】Flink CDC 1.12版本引入了对SQL Server的支持
22 1
|
1月前
|
存储 SQL 缓存
4.2.1 SQL语句、索引、视图、存储过程
4.2.1 SQL语句、索引、视图、存储过程
|
5天前
|
SQL 存储 数据安全/隐私保护
|
7天前
|
SQL 存储
SQL Server基本函数
SQL Server基本函数
|
26天前
|
SQL 人工智能 运维
数据库基础入门 — SQL排序与分页
数据库基础入门 — SQL排序与分页
16 0
|
27天前
|
SQL 存储 数据库
【数据库SQL server】自学终极笔记
【数据库SQL server】自学终极笔记
75 0