USE [PartyMis]
GO
/****** Object: StoredProcedure [dbo].[GetOnePageDate] Script Date: 11/18/2012 22:28:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
据调查此方法限制最少,性能最佳
返回两个表,第一个表包含总行数,第二个表是查询到的记录
--分页查询的原理:
--1.先将预分页内容按照排序条件加上自增列导入到临时表中(或表变量)
--2.针对临时表操作,找到相应的N页对应的自增列编码范围
--3.根据第N页对应的自增列编码范围,查找第N页内容
--需要注意的是:
--第一是添加自增列,确定行号
--第二缩减中间处理过程的操作数据量
*/
ALTER proc [dbo].[GetOnePageDate]
@page int,
@pagesize int,
@counts int output
as
begin
select top(@pagesize*@page) ROW_NUMBER() --可以减少处理的数据,加快速度
over(order by id) as 序号, --按什么字段分页的字段,不需要唯一性
* --查询字段
into #temp --插入临时表
from T_Party --查询表名称
where id >=1 --查询条件
set @counts = (select COUNT(*) as counts from T_Party)--总记录条数
select * from #temp where 序号 >@pagesize*(@page-1) and 序号 <= @pagesize*@page
end
GO
/****** Object: StoredProcedure [dbo].[GetOnePageDate] Script Date: 11/18/2012 22:28:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
据调查此方法限制最少,性能最佳
返回两个表,第一个表包含总行数,第二个表是查询到的记录
--分页查询的原理:
--1.先将预分页内容按照排序条件加上自增列导入到临时表中(或表变量)
--2.针对临时表操作,找到相应的N页对应的自增列编码范围
--3.根据第N页对应的自增列编码范围,查找第N页内容
--需要注意的是:
--第一是添加自增列,确定行号
--第二缩减中间处理过程的操作数据量
*/
ALTER proc [dbo].[GetOnePageDate]
@page int,
@pagesize int,
@counts int output
as
begin
select top(@pagesize*@page) ROW_NUMBER() --可以减少处理的数据,加快速度
over(order by id) as 序号, --按什么字段分页的字段,不需要唯一性
* --查询字段
into #temp --插入临时表
from T_Party --查询表名称
where id >=1 --查询条件
set @counts = (select COUNT(*) as counts from T_Party)--总记录条数
select * from #temp where 序号 >@pagesize*(@page-1) and 序号 <= @pagesize*@page
end