程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> Sql 數據分頁解決方案

Sql 數據分頁解決方案

編輯:關於SqlServer

很多開始學習編程的朋友們在使用數據庫自定義分頁的時候,會遇到寫不好數據分頁存儲過程的問題。

這裡我就自己的一點經驗和學習心得提供幾種數據庫內分頁的存儲過程和大家分享一下。

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved