儲存過程分頁

2021-09-06 19:51:07 字數 2564 閱讀 8930

ylbtech-databasedesgin:ylbtech-proc-儲存過程分頁

1.a,資料庫關係圖(database diagram)返回頂部

1.b,資料庫設計指令碼(database design script)返回頂部

use

[test]go

/****** object: storedprocedure [dbo].[proccommonpaging] script date: 03/22/2012 13:34:59 *****

*/set ansi_nulls on

goset quoted_identifier on

go/*

功能:帶分頁的儲存過程,只支援單錶

* 姓名:

* 日期:

*/create

procedure

[dbo

].[proccommonpaging

]@pagesize

int, --

顯示的大小

@pageindex

int,--

傳入的頁碼

@keyfiled

varchar(50),--

主鍵字段

@tablename

varchar(150),--

表名@condition

varchar(500),--

查詢條件

@sort

varchar(150),--

排序@rowcount

int output,--

查詢的總記錄數

@pagecount

int output --

獲得總頁碼

as--

查詢的總記錄數

declare

@sql

nvarchar(4000)--

要執行的sql

declare

@expellent

int--

要排除的記錄數

begin

--獲取總記錄數

set@sql='

select @rowcount = count(*) from '+

@tablename+'

'+@condition

exec sp_executesql @sql,n'

@rowcount int output

',@rowcount output--

計算總記錄數

set@pagecount

=ceiling((@rowcount

*1.0)/

@pagesize)--

計算總頁數

if@pageindex=1

begin

set@sql='

select top '+

str(@pagesize)+

'* from '+

@tablename+'

'+@condition+'

'+@sort

endbegin

if@condition='

'begin

set@expellent

=@pagesize

*(@pageindex

-1) --

計算要排除的記錄數

set@sql='

select top '+

str(@pagesize)+

'* from '+

@tablename+'

where '+

@keyfiled+'

not in(select top '+

str(@expellent)+''

+@keyfiled+'

from '+

@tablename+'

'+@sort+'

) '+@sort

endelse

begin

set@expellent

=@pagesize

*(@pageindex

-1)--

計算要排除的記錄數

set@sql='

select top '+

str(@pagesize)+

'* from '+

@tablename+'

'+@condition+'

and '+

@keyfiled+'

not in(select top '+

str(@expellent)+''

+@keyfiled+'

from '+

@tablename+'

'+@condition+'

'+@sort+'

) '+@sort

endend

exec(@sql)

endgo

view code

1.c,功能實現**(function implementation code)返回頂部

出處:

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

分頁儲存過程 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...