asp学习网: 首页 >> asp与数据库 >> sql server教程 >> Sql 数据分页解决方案

Sql 数据分页解决方案

很多开始学习编程的朋友们在使用数据库自定义分页的时候,会遇到写不好数据分页存储过程的问题。

这里我就自己的一点经验和学习心得提供几种数据库内分页的存储过程和大家分享一下。

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

from:asp学习网/title:Sql 数据分页解决方案/ time:2007-2-24 21:27:20

本文主题Sql 数据分页解决方案

asp教程 ©2006-2007 aspxuexi.com | 关于站点 | 版权隐私 | 站内搜索
复制或者翻版 请于夜间进行