分页的存储过程

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值