sqlserver2005分页存储过程
2024-10-07 23:53:01
Create proc [dbo].[sp_AbiTableLoad]
----------------------------------------------
-- 单表多表分页存储过程 --
-- 1.支持单表多表分页查询 --
-- 2.支持排序 --
-- 3.支持表名重命名 --
-- 4.返回总页数 --
-- 5.返回总记录数 --
-- 6.带行编号 --
-- 缺陷: --
-- 1.多表查询时,各表中各列名不许出现重名 --
-- Edit by Shardine 2007.1.19 --
----------------------------------------------
@strFields varchar(500), --字段名
@strTableName varchar(500), --表名
@strWhere varchar(500), --条件 无需加where
@strOrderBy varchar(200), --排序 必添 无需加order by
@PageSize int, --分页大小
@CurrentPage int, --当前页,1为起始页
@PageCount int output, --返回总页数
@RecordCount int output --返回记录总数
as
begin
declare @StartIndex int --定义起始位置
set @StartIndex = (@currentPage - 1) * @PageSize + 1
declare @strSql1 nvarchar (800) --数据查询
declare @strSql2 nvarchar (1000) --统计记录总数
declare @ParmDefinition nvarchar (800)
set @ParmDefinition = N'@tmp int output'
set @strSql1 = N'select row_number() over (order by ' + @strOrderBy + ' ) as RowID, '
set @strSql2 = 'select @tmp = count(*) '
if @strFields <> ''
set @strSql1 = @strSql1 + @strFields
else
set @strSql1 = @strSql1 + ' * '
if @strTableName <> ''
begin
set @strSql1 = @strSql1 + ' from ' + @strTableName
set @strSql2 = @strSql2 + ' from ' + @strTableName
end
if @strWhere <> ''
begin
set @strSql1 = @strSql1 + ' where ' + @strWhere
set @strSql2 = @strSql2 + ' where ' + @strWhere
end
exec sp_executesql @strSql2,@ParmDefinition,@tmp = @RecordCount output --执行统计记录总数SQL语句 if @RecordCount % @PageSize = 0 --计算总页数
set @PageCount = @RecordCount / @PageSize
else
set @PageCount = @RecordCount / @PageSize + 1
set @strSql1 = 'with TempTable as ( ' + @strSql1 + ' ) select * from TempTable where RowID between '
+ Convert(varchar(10),@StartIndex) + ' and ' + Convert(varchar(10),@StartIndex + @PageSize - 1)
exec(@strSql1)
end
最新文章
- WCF学习之旅—WCF中传统的异常处理(十六)
- uva 1599 ideal path(好题)——yhx
- 基于XML配置的spring aop增强配置和使用
- crawler4j 学习(二)
- jQuery中的Ajax几种请求方式
- python练习题代码
- Windows server 2008 r2搭建FTP服务器
- try catch语句在VC下的处理
- 跟我学android-Android应用结构分析(四)
- 安卓,通过本地应用分享到微信、facebook等
- 转载Eclipse中Maven WEB工程tomcat项目添加调试
- 分享3一个博客HTML5模板
- 【STM32H7教程】第2章 STM32H7的开发环境搭建
- poj-1807(最大流)
- js-clickNumCount.html
- python 缺少module
- wget 网站扒取
- MySql NDB cluster replication配置
- Linux 工具,一本好书 大牛的博客
- VMWARE安装centos6 http://www.centoscn.com/image-text/setup/2013/0816/1263.html