• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > sqlserver 通用分页存储过程

sqlserver 通用分页存储过程

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了sqlserver,分页,存储过程等相关知识,希望本文的分享对您有所帮助

sqlserver 通用分页存储过程,用存储过程可以提高效率与节约时间。

代码如下:
create proc commonPagination
@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
--以下是调用示例
use pubs
go
declare @pageCount int
exec commonPagination
'job_id,job_desc','jobs','job_id',
'asc','1=1',2,2,@pageCount output
select '总页数为:' + str(@pageCount)
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何获取SqlServer2005表结构(字段,主键,外键,递增,描述)
  • 如何在SQL Server中实现 Limit m,n 的功能
  • 深入Mysql,SqlServer,Oracle主键自动增长的设置详解
  • 小编带你深入解析SQL Server索引的原理
  • sqlserver帐号被禁用如何处理
  • sqlserver查询锁住sql以及解锁的方法
  • MS SQLServer 批量附加数据库的方法
  • SqlServer 2008 创建测试数据的方法
  • 讲解有关sqlserver分页查询处理方法
  • MYSQL同步Sqlserver数据库数据

相关文章

  • 2018-12-05分享MySql基于ssl安全连接的主从复制的详细介绍
  • 2018-12-05深入理解MySQL进阶漂流记(二)
  • 2018-12-05mysql 中文乱码 解决方法集锦
  • 2017-05-11MySQL笔记之索引的使用
  • 2018-12-05检查并修复mysql数据库表的具体方法
  • 2017-05-11Mysql 错误问题汇总(不断更新中)
  • 2017-05-11分析MySQL中优化distinct的技巧
  • 2017-05-11使用MySQL中的AVG函数求平均值的教程
  • 2018-12-05如何理解MySQL数据库的优化
  • 2018-12-05oracle—SQL技巧之(一)连续记录查询sql案例测试

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 数据库工具sysbench安装教程和性能测试例子
    • mysql 4个sql语句特殊处理语句总结(收藏)
    • MySQL存储过程的使用、执行和创建教程
    • 搜索sql语句
    • [教程]MongoDB 从入门到进阶 (数据检索及统计
    • SQL数据操作基础(初级)3
    • 深入了解在Linux下完全卸载mysql
    • MySQL/Postgrsql 详细讲解如何用ODBC接口访问MySQL指南
    • 有关UUIDs的文章推荐5篇
    • 绿色版 mysql 安装配置

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有