分頁儲存過程

2021-05-27 16:14:07 字數 1237 閱讀 9967

select * from books

go--判斷儲存過程是否存在

if exists(select 1 from sysobjects where [name]='books_pager')

drop procedure books_pager --如果此儲存過程存在,就刪除

go--建立分頁儲存過程books_pager

create proc books_pager

@pagesize int, --每頁顯示多少條記錄【輸入】

@pageindex int, --當前頁數【輸入】

@totalpages int output --總頁數【輸出】

asdeclare @startindex int --定義開始位置

declare @endindex int --定義結束位置

declare @totalrows int --定義總行數

select @totalrows = count(*) from books --查詢表一共多少條記錄

set @totalpages=@totalrows/@pagesize --總頁數=總行數/每頁要顯示的條數

if(@totalrows/@pagesize!=0) --如果不能整除的情況下

begin

set @totalpages=@totalpages+1 --總頁數+1

endset @startindex=(@pageindex-1)*@pagesize+1

set @endindex=@startindex+@pagesize-1

declare @booktemp table([id] int identity(1,1)not null,bookid int) --建立臨時表@booktemp

insert @booktemp select id from books --查詢出books表裡面的id插入到臨時表中

select * from @booktemp as t,books as b

where t.bookid=b.id and t.id>=@startindex and t.id<=@endindex --根據開始和結束位置查詢要顯示的哪一頁

go--測試儲存過程

declare @totalpages int

exec books_pager 3,1,@totalpages output

print @totalpages --輸出總頁數

分頁儲存過程 分頁儲存過程

分頁儲存過程 alter proc dbo p pageshow pagesize int,每頁大小 currentpage int out,當前頁 housename nvarchar 50 房產名稱 totalcount int out,總記錄數 totalpage int out 總頁數 as...

分頁儲存過程

create proc p sobigo percentpage tblname varchar 255 t category 表名 strgetfields varchar 1000 需要返回的列 fldname varchar 255 排序的欄位名 pagesize int 10,頁尺寸 pag...

分頁儲存過程

create procedure pro select pageindex int,pagesize int as select student.sno,student.sname,student.s grade.math,grade.physics,grade.huaxue,grade.chine...