一个通用的分页存储过程
来源:互联网 发布:广西广电网络网上营业厅 编辑:程序博客网 时间:2024/05/19 19:14
这是我项目中使用的一个分页存储过程,具有很强的通用性。配合前台ASP.NET使用50万条数据基本感不到延迟。数据库为SQLServer2000。
1.分页存储过程
CREATE procedure pagination
@str_sql varchar(1000) = '*', -- 执行的SQL 不含Order by 内容
@str_orderfield varchar(255)='''', -- 排序的字段名
@page_size int = 10, -- 页大小
@page_index int = 0, -- 页码
@order_type int, -- 设置排序类型, 非 -1 值则降序
@total_count int output -- 返回记录总数, 非 0 值则返回
as
---------------------
-- 获取指定页的数据--
---------------------
declare @strsql varchar(5000) -- 主语句
declare @strtmp varchar(5000) -- 临时变量
declare @strorder varchar(400) -- 排序字串
declare @cruRow int -- 当前行号
--执行总数统计
exec getRowCount @str_sql,@total_count output
set @strtmp = ' select * from ' +
' (select top ' + convert(varchar(10),@page_size) + ' * from ' +
' (select top ' + convert(varchar(10),(@page_index + 1) * @page_size) +' * from '+ -- N+1页
' ('+ @str_sql +') Src '
--排序方向
if @order_type !=0
begin
set @strsql= @strtmp +
' order by breed_code asc) a ' +
' order by breed_code desc)b' +
' order by breed_code asc'
end
else
begin
set @strsql= @strtmp +
' order by breed_code desc) a ' +
' order by breed_code asc)b' +
' order by breed_code desc'
end
exec (@strsql)
GO
----------------------------------------------------------------------------
2.分页存储过程执行中用到的行数统计
create procedure getRowCount
@sql nvarchar(2000),
@count int output
as
begin
--------------------
-- 获取数据总行数 --
--------------------
declare @tmpsql nvarchar(2000)
set @tmpsql='select @count=count(*) from ('+ @sql +') a'
execute sp_executesql @tmpsql,N'@count int output',@count output
end
GO
- 一个通用的分页存储过程
- 一个通用的分页存储过程
- 一个通用的分页存储过程..............
- 通用的分页存储过程
- 通用的分页存储过程
- 通用分页的存储过程
- 通用的分页存储过程
- 通用分页的存储过程
- 发布一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 一个通用的数据分页的存储过程
- 一个通用的分页存储过程,不晓得有用不得
- SQL Server 一个比较通用的分页存储过程
- 分页-【存储过程通用的】 【SqlServer分页】
- 网上书城 需求分析
- 呵呵,与Atlas亲密接触ing
- 成功者的十三个习惯
- 我的第一次9:29
- 如何在Windosws 2000中安装PHP4并访问Oracle
- 一个通用的分页存储过程
- 如何面对单调重复的任务
- javascript 常用验证
- CSS中expression使用简介
- 由浅到深了解JavaScript类
- 劳伦斯·彼德 _彼德原理
- 在delphi中"队"如何操作?"
- osjava(http://www.code999.com/SoftView/SoftView_7698.html)
- ACE 常用的类和样板