分页存储过程(1)
来源:互联网 发布:国外开源网站源码 编辑:程序博客网 时间:2024/06/16 03:35
从网上找到的分页存储过程。(没有返回查询的总条数)
--创建存储过程
CREATE PROCEDURE cndoup_GetPageOfRecords
@pageSize int = 20, --分页大小
@currentPage int , --第几页
@columns varchar(1000) = '*', --需要得到的字段
@tableName varchar(100), --需要查询的表
@condition varchar(1000) = '', --查询条件, 不用加where关键字
@ascColumn varchar(100) = '', --排序的字段名 (即 order by column asc/desc)
@bitOrderType bit = 0, --排序的类型 (0为升序,1为降序)
@pkColumn varchar(50) = '' --主键名称
AS
BEGIN --存储过程开始
DECLARE @strTemp varchar(300)
DECLARE @strSql varchar(5000) --该存储过程最后执行的语句
DECLARE @strOrderType varchar(1000) --排序类型语句 (order by column asc或者order by column desc)
BEGIN
IF @bitOrderType = 1 --降序
BEGIN
SET @strOrderType = ' ORDER BY '+@ascColumn+' DESC'
SET @strTemp = '<(SELECT min'
END
ELSE --升序
BEGIN
SET @strOrderType = ' ORDER BY '+@ascColumn+' ASC'
SET @strTemp = '>(SELECT max'
END
IF @currentPage = 1 --第一页
BEGIN
IF @condition != ''
SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@columns+' FROM '+@tableName+
' WHERE '+@condition+@strOrderType
ELSE
SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@columns+' FROM '+@tableName+@strOrderType
END
ELSE -- 其他页
BEGIN
IF @condition !=''
SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@columns+' FROM '+@tableName+
' WHERE '+@condition+' AND '+@pkColumn+@strTemp+'('+@pkColumn+')'+' FROM (SELECT TOP '+STR((@currentPage-1)*@pageSize)+
' '+@pkColumn+' FROM '+@tableName'where'+@condition+@strOrderType+') AS TabTemp)'+@strOrderType
ELSE
SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@columns+' FROM '+@tableName+
' WHERE '+@pkColumn+@strTemp+'('+@pkColumn+')'+' FROM (SELECT TOP '+STR((@currentPage-1)*@pageSize)+' '+@pkColumn+
' FROM '+@tableName+@strOrderType+') AS TabTemp)'+@strOrderType
END
END
EXEC (@strSql)
END
最后执行的分页查询语句可能为:
select top 3 *
from OrderTable
where MemID=1 and OID >(select MAX(OID) from (select top 3 OID from OrderTable where MemID=1 order by OID) as TabTemp )
order by OID
有个缺点就是,只能通过一个字段排序。。
- 分页存储过程(1)
- 分页存储过程1
- 分页(存储过程)
- 数据海量分页存储过程(1)
- SQLServer 分页存储过程(1)
- 常用存储过程分页1
- MySql分页存储过程1
- asp 存储过程(分页)
- 分页存储过程(2)
- 存储过程(指针)分页
- (转载)分页存储过程
- 存储过程五(分页)
- SQL Server 分页通用存储过程(1)
- 经典存储过程,(.NET存储过程分页)
- orcale分页 存储过程分页
- MSSQL 存储过程分页 测试 1
- 经典的分页(存储过程)
- 存储过程 实现分页功能(2)
- 用 javascript + actionScript 解决透明的flash在firefox下滚轮失效的问题!
- BGInfo
- java文件上传方法
- [接口介紹]MII接口详解
- 打开天窗:应用大脑科学提升两性之间的职场关系
- 分页存储过程(1)
- Ajax笔记
- QWT在Windows XP及Ubuntu10.04下的安装使用
- ASP.NET在VS2008中如何实现调试!~~~
- 创建表单元素时需注意。
- Java EE和Domino系统间跨域SSO的实现
- 在北京注册科技类公司的经历(四):交工商表、拿营业执照
- 用自定义IHttpModule实现URL重写
- DataGrid 与chart联动Step By Step 1