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...