很多开始学习编程的朋友们在使用数据库自定义分页的时候,会遇到写不好数据分页存储过程的问题。
这里我就自己的一点经验和学习心得提供几种数据库内分页的存储过程和大家分享一下。
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
Sql 数据分页解决方案
原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]
相关文章:
- MSSQL Server中DATETIME类型数据的处理(2007-11-18 9:6:4)
- mssql转移到word(2007-11-15 1:42:20)
- join 方式(2007-11-11 8:59:26)
- 数据库设计的折衷(2007-10-14 9:4:0)
- 堵死SQLServer注入漏洞(2007-9-8 1:27:12)
- SQL Server 连接基础知识(2007-9-1 11:45:42)
- 生成测试数据 T-SQL系列(2007-8-17 11:43:20)
- SQL SERVER优化建议(2007-8-1 1:35:11)
- SQLServer性能分析(2007-7-27 7:39:49)
- Transact_SQL索引(2007-7-20 8:14:19)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
