sqlserver 通用分页存储过程
SqlServer中的通用分页存储过程:效率与时间的双赢策略
在大数据量环境下,如何高效地进行数据分页是一个重要的挑战。为此,我们可以使用SQL Server中的存储过程来实现这一功能。接下来,我将展示一个通用分页存储过程的创建方法,它不仅提高了效率,也节省了时间。
创建一个名为“monPagination”的存储过程,其参数包括:要显示的列名、要查询的表名、排序的列名、排序的方式(升序或降序)、查询条件、当前页索引和页大小(每页显示的记录条数)。还有一个输出参数用于获取总页数。
```sql
CREATE PROC monPagination
@columns VARCHAR(500), --要显示的列名,用逗号隔开
@tableName VARCHAR(100), --要查询的表名
@orderColumnName VARCHAR(100), --排序的列名
@order VARCHAR(50), --排序的方式,升序为asc,降序为desc
@where VARCHAR(100), --where 条件,如果不带查询条件,请用 1=1
@pageIndex INT, --当前页索引
@pageSize INT, --页大小(每页显示的记录条数)
@pageCount INT OUTPUT --总页数,输出参数
AS
BEGIN
DECLARE @sqlRecordCount NVARCHAR(1000) --得到总记录条数的语句
DECLARE @sqlSelect NVARCHAR(1000) --查询语句
SET @sqlRecordCount = N'SELECT @recordCount=COUNT() FROM ' + @tableName + ' WHERE ' + @where
DECLARE @recordCount INT --保存总记录条数的变量
EXEC sp_executesql @sqlRecordCount, N'@recordCount INT OUTPUT', @recordCount OUTPUT --动态sql传参
IF (@recordCount % @pageSize = 0) --如果总记录条数可以被页大小整除
SET @pageCount = @recordCount / @pageSize --总页数就等于总记录条数除以页大小
ELSE --如果总记录条数不能被页大小整除
SET @pageCount = @recordCount / @pageSize + 1 --总页数就等于总记录条数除以页大小加1
SET @sqlSelect = N'SELECT ' + @columns + ' FROM (SELECT ROW_NUMBER() OVER (ORDER BY ' + @orderColumnName + ' ' + @order + ') AS tempid, FROM ' + @tableName + ' WHERE ' + @where + ') AS tempTableName WHERE tempid BETWEEN ' + STR((@pageIndex - 1) @pageSize + 1) + ' AND ' + STR(@pageIndex @pageSize)
EXEC (@sqlSelect) --执行动态Sql
END GO
```
以下是调用示例:假设我们使用的是名为“jobs”的表,想要获取第二页的job_id和job_desc信息以及总页数。可以这样调用存储过程:
```sql
USE pubs;
GO
DECLARE @pageCount INT;
EXEC monPagination 'job_id,job_desc','jobs','job_id', 'asc','1=1',2,2,@pageCount OUTPUT;
SELECT '总页数为' + STR(@pageCount);
```
编程语言
- sqlserver 通用分页存储过程
- Iview Table组件中各种组件扩展的使用
- jQuery Easyui Datagrid实现单行的上移下移及保存移动
- 搞定immutable.js详细说明
- 在vue项目中引入highcharts图表的方法(详解)
- vue中实现图片和文件上传的示例代码
- 实例分析PHP将字符串转换成数字的方法
- PHP实现桶排序算法
- JS基于HTML5的canvas标签实现炫目的色相球动画效果
- ASP函数大全解析
- 微信公众平台开发-微信服务器IP接口实例(含源
- Mysql带And关键字的多条件查询语句
- linux下编译安装memcached服务
- 使用nodejs开发cli项目实例
- Js数组排序函数sort()介绍
- yii框架创建与设置默认控制器并载入模板操作示