- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0 |
很多开始学习编程的朋友们在使用数据库自定义分页的时候,会遇到写不好数据分页存储过程的问题。
这里我就自己的一点经验和学习心得提供几种数据库内分页的存储过程和大家分享一下。
1、 使用top
1.1利用当前记录号(currentnote)和分页页面大小(pagesize)进行分页
create proc GetNextPageInfo2
@pagesize int, --page size
@currentnote int --current note
As
declare @sql nvarchar(200)
set @sql=N'select top '+convert(varchar(10),@pagesize)+
' * from dbo.Userinfo where userid > ' + convert(varchar(10),@currentnote)
exec sp_executesql @sql
go
1.2利用本页页码和分页页面大小进行分页
create proc GetNextPageInfo
@pagesize int, --page size
@page int --CurrentPage NO
As
declare @jilu bigint
set @jilu=(@pagesize*@page)
declare @sql nvarchar(200)
set @sql=N'select top '+convert(varchar(10),@pagesize)+
' * from dbo.Userinfo where userid not in (select top ' + convert(varchar(10),@jilu) +
' userid from Userinfo order by userid) order by userid'
exec sp_executesql @sql
go
两种方式比较:第一种执行效率应该高于第二种,不过再id号多变的情况下第二种方法使用起来相对简单。
2、 使用rowcount
3、 2.1利用当前记录号(currentnote)和分页页面大小(pagesize)进行分页
create proc GetNextPageInfo3
@pagesize int, ----分页大小
@currentnote int ----当前页最后一条记录号
as
set rowcount @pagesize
select * from userinfo where userid>@currentnote
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |