黑马程序员--分页存储过程

------------------ Windows Phones 7手机开发 .Net培训 、期待与您交流!---------------------- 

                   今天学习和熟练的写了几种简单的分页存储过程,感觉还是蛮简单的,运用的2中不同的分页方法,一种是很流行的row_number做的分页存储,另一种是用子查询做的分页存储,2种分页存储方法都通过了测试,整理如下:

--第一种是以Row_Number函数做的分页存储过程
create proc  NewsProc
@pageIndex int,--页码
@pageSize int,--页容量
@pageCount int output,--输出参数,页总数
@rowCount int output --输出参,总行数
as
begin
select @rowCount=count(NewsID) from News --总行数
set @pageCount=ceiling(cast(@rowCount as float)/cast(@pageSize as float)) --获得总页数
select * from
(
select Row_Number() over(order by NewsID) as num, * from News
)as temp
where num>((@pageIndex-1)*@pageSize) and num<=(@pageIndex*@pageSize)
end


declare @rc int,@pc int

exec NewsProc  5,5,@rc output,@pc output

select  @rc,@pc


--第二种是运用子查询做的分页存储过程

create procedure procNews
@pageSize int,
@pageIndex int,
@pageCount int output,
@rowCount int output
as
begin
select top (@pageSize)  *from News Where NewsID not in(select top (@pageSize*(@pageIndex-1)) NewsID from News order by NewsID)
select @rowCount=count(NewsID) from News --总行数
set @pageCount=ceiling(cast(@rowCount as float)/cast(@pageSize as float)) --获得总页数 --cast是做类型转换,还可以用convert(float,@rowCount)
end

declare @pc int,@rc int
exec procNews 5,3,@pc output,@rc output
select @pc,@rc

显示效果如下:

------------------ Windows Phones 7手机开发 .Net培训 、期待与您交流!---------------------- 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值