--
建立表開始
ifobject_id('
[test]',
'u')
isnot
null
drop
table
[test
]create
table
[dbo].
[test](
[id][
int]
identity(1
, 1) not
null,[
title][
varchar](
50)
null)--
建立表結束
--分頁儲存過程開始
create
procedure
dbo.sp_pagingtest
(@pagesize
int,
@pageindex
int--
該過程接收兩個引數,乙個是當前頁面乙個是每頁顯示多少數量)as
begin
declare
@count
int--
宣告總數
select
@count
=count
(id)
from
test
select
@count
'count
'declare
@strsql
varchar
(2000
)declare
@rfrom
int--
宣告從第幾頁開始
set@rfrom=(
@pageindex-1
) *@pagesize
if@pageindex
>1--
如果是從第二頁或者大於以上開始,那麼執行下面
begin
set@strsql='
select top '+
str(
@pagesize) +
'* from test where [id] > (select max(id) from (select top '+
str(
@rfrom) +
'[id] from test order by [id] ) tempidb)'--
上面sql得到的是當前頁面所有記錄
endelse
--如果是從第一條記錄 也就是第一頁開始
begin
set@strsql='
select top '+
str(
@pagesize) +
'* from test order by [id]'--
獲取top n條記錄填充到當前頁面 ,n=pagesize
endexec
(@strsql)--
執行語句
end--
過程完畢
go
SQL分頁語句及簡單的SQL分頁儲存過程
假分頁 從資料庫中選擇所有的記錄後再進行分頁 真分頁 只從資料庫中選擇當前頁的記錄 sql select top每頁顯示的記錄數 fromtopicwhereid not in select top 當前的頁數 1 每頁顯示的記錄數 idfromtopicorder byiddesc order b...
SQL中簡單的分頁儲存過程
實現思路 運用子查詢來排除你所查詢資料中所不需要的。先查到開始到你所需要查詢內容的所有資料,然後再利用子查詢排除掉前面你所不需要的資料,最後就只剩下你所需要的內容了。可以自己自由新增和更改的地方 如果還需要返回總資料的話,可以自行新增乙個output的引數用於輸出你所查詢到的所有資料總和。或者你需要...
sql 儲存過程分頁
create proc myx prpagerecordset querystr nvarchar 1000 keyfield nvarchar 200 pagesize int,pagenumber int as begin declare sqltext as nvarchar 4000 dec...