分页查询 效率最高

穷光蛋886

穷光蛋886

2016-02-19 09:19

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐分页查询 效率最高,无聊中的都看过来。
代码如下:

/*

日期:2009-03-19
功能:根据各种条件获取 游戏国家任务 列表数据
*/
Create procedure [dbo].[PrGs_Nation_Task_GetList]

@PageSize int = 100, -- 每页显示记录条数,默认为100
@PageIndex int = 1, -- 当前提取要显示的页码,默认为1,数据库根据PageSize,PageIndex 计算返回一页数据

@RetTotal int output, -- 记录总数
@RetCount int output, -- 返回记录数
@RetPageIndex int output, -- 输出当前页码
@ReturnDesc varchar(128) output -- 返回操作结果描述
as
begin

set nocount on
set xact_abort on

set @RetTotal = 0
set @RetCount = 0
set @RetPageIndex = @PageIndex




-- 多条件取值
declare @Err int -- 错误
declare @PageCount int -- 总页数
declare @BeginRID int -- 开始行 Rid
declare @MaxRow int -- 最后行

select @RetTotal = count(*)
from NationTask

select @Err = @@ERROR

if @Err 0
begin
set @ReturnDesc = '提取国家任务总数失败!'
return -1
end

-- 如果无数据, 则返回空结果集
if @RetTotal = 0
begin
set @ReturnDesc = '当前条件无国家任务记录!'
return 1
end

-- 计算总页数
set @PageCount = @RetTotal / @PageSize

if @RetTotal % @PageSize 0
begin
set @PageCount = @PageCount + 1
end

-- 超过总页数,则返回空结果集
if @PageIndex @PageCount
begin
set @ReturnDesc = '当前条件无国家任务记录!'
return 1
end

-- 获取 要返回页面的 第一行纪录的 Rid
set @MaxRow = @PageSize * (@PageIndex - 1) + 1

set rowcount @MaxRow

select @BeginRID = Rid
from NationTask
order by Rid desc


-- 返回数据列表
set rowcount @PageSize

select Rid
,TaskName
,TaskTitle
,ImageID
,EffectID
,StartTime
from NationTask
where Rid = @BeginRID
order by Rid desc

set @RetCount = @@rowcount

-- 结束
set @ReturnDesc = '提取国家任务列表成功!'
return 1
end
展开更多 50%)
分享

猜你喜欢

分页查询 效率最高

编程语言 网络编程
分页查询 效率最高

Ajax实现分页查询

Web开发
Ajax实现分页查询

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

高效的jsp分页查询

Java JAVA基础
高效的jsp分页查询

Hibernate分页查询原理解读

Java JAVA基础
Hibernate分页查询原理解读

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在Oracle中实现搜索分页查询

编程语言 网络编程
在Oracle中实现搜索分页查询

三种SQL分页法效率分析

SQLServer
三种SQL分页法效率分析

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Oracle 10g的DBA无法登录解决方案

Oracle 10g的DBA无法登录解决方案

用JavaScript 处理 URL 的两个函数代码

用JavaScript 处理 URL 的两个函数代码
下拉加载更多内容 ↓