分页存储过程
2009-02-09 11:31 daixueji 阅读(367) 评论(1) 编辑 收藏 举报
创建时间 |
|
作者 |
|
主题 |
分页存储过程 | ||
描述 |
存储过程分页有多种形式,其中sql server 2000 和sql server 2005的特征也可以决定存储过程的形式 | ||
内容 |
l SQL SERVER 2000:临时表创建存储过程 1 l SQL SERVER 2005:利用ROW_NUMBER() 具体用法可以参考开窗函数,排序函数 CREATE PROCEDURE changeArticlePage ( @pageSize int, @pageIndex int ) AS BEGIN declare @startRow int,@endRow int set @startRow=(@pageIndex-1)*@pageSize+1 set @endRow=@pageIndex*@pageSize select * from ( SELECT *, Row_Number() over(order by Id desc) as row from Articles) as tb_page where row between @startRow and @endRow END GO | ||
总结 |
1. 临时表中有自动标志列;把标志列和要分页的表的记录的关键字一一对应;构成了临时表的基础架构;用分页表标志列填充临时表中对应字段;表之间连接,把临时表ID嫁接过来,得到理想的分页架构; 2. SQL SERVERE 2005 中特有函数ROW_NUMBER()和OVER()绑定使用,生成分页架构 3. 上述分页思想有一个共性:分页架构都添加了排序字段,数值是连续整型;为分页提供了充分的条件 |