SQL Server 2005 分页存储过程

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:

支持:多表连接查询、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
相关文章
|
7天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
42 10
|
28天前
|
存储 SQL Go
sqlserver存储过程
sqlserver存储过程
19 0
|
29天前
|
存储 SQL 数据库
sqlserver中常用的几个存储过程
sqlserver中常用的几个存储过程
47 0
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
16天前
|
SQL
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
15 0
|
27天前
|
存储 SQL 数据库
sql serve存储过程
sql serve存储过程
14 0
|
7天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
61 6
|
7天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
11天前
|
SQL 安全 Java
SQL server 2017安装教程
SQL server 2017安装教程
14 1
|
24天前
|
SQL 存储 Python
Microsoft SQL Server 编写汉字转拼音函数
Microsoft SQL Server 编写汉字转拼音函数