当前位置: 移动技术网 > IT编程>数据库>MSSQL > 分页查询 效率最高

分页查询 效率最高

2017年12月12日  | 移动技术网IT编程  | 我要评论

13316059312,cad机械制图视频教程,烈火章鱼在哪里带图

复制代码 代码如下:

/*

日期: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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网