通用分頁儲存過程

2022-04-22 06:51:23 字數 2528 閱讀 9106

alter

proc

proc_getrecordfrompage

@tblname

varchar(255), --

表名@fldname

varchar(255), --

欄位名@pagesize

int=

1, --

頁尺寸@pageindex

int=

1, --

頁碼@iscount

bit=

0, --

返回記錄總數, 非0 值則返回

@ordertype

bit=

1, --

設定排序型別, 非0 值則降序

@strwhere

varchar(2000) =

''--

查詢條件(注意: 不要加where)

asdeclare

@strsql

varchar(6000) --

主語句declare

@strtmp

varchar(1000) --

臨時變數

declare

@strorder

varchar(500) --

排序型別

if@ordertype!=0

begin

set@strtmp='

<(select min

'set

@strorder='

order by ['+

@fldname+'

] desc

'end

else

begin

set@strtmp='

>(select max

'set

@strorder='

order by ['+

@fldname+'

] asc

'end

set@strsql='

select top '+

str(@pagesize) +

'* from ['+

@tblname+'

] where ['+

@fldname+'

]'+@strtmp+'

(['+@fldname+'

]) from (select top '+

str((@pageindex

-1)*

@pagesize) +'[

'+@fldname+'

] from ['+

@tblname+'

]'+@strorder+'

) as tbltmp)'+

@strorder

if@strwhere

!=''

set@strsql='

select top '+

str(@pagesize) +

'* from ['+

@tblname+'

] where ['+

@fldname+'

]'+@strtmp+'

(['+@fldname+'

]) from (select top '+

str((@pageindex

-1)*

@pagesize) +'[

'+@fldname+'

] from ['+

@tblname+'

] where '+

@strwhere+'

'+@strorder+'

) as tbltmp) and '+

@strwhere+'

'+@strorder

if@pageindex=1

begin

set@strtmp=''

if@strwhere

!=''

set@strtmp='

where ('+

@strwhere+'

)'set@strsql='

select top '+

str(@pagesize) +

'* from ['+

@tblname+'

]'+@strtmp+'

'+@strorder

endif

@iscount!=0

set@strsql='

select count('+

@fldname+'

) as total from ['+

@tblname+'

]'exec (@strsql)--

呼叫儲存過程, 表名 欄位名 顯示條數,第幾頁

exec proc_getrecordfrompage '

customer

','sale_customerid

',1,1

select

*from customer

通用儲存過程 分頁儲存過程

名稱 spall returnrows 輸入 輸出 呼叫 exec spall returnrows select from 表名 頁號,返回記錄數,主鍵 排序字段 spall returnrows select from all categories 2,10,id id 說明 百萬級 通用儲存過...

通用分頁儲存過程

create procedure sp page strtable varchar 50 表名 strcolumn varchar 50 按該列來進行分頁 intcoltype int,strcolumn列的型別,0 數字型別,1 字元型別,2 日期時間型別 intorder bit,排序,0 順序...

通用分頁儲存過程

set quoted identifier on goset ansi nulls off go declare p1 int set p1 null exec sp pageview tbname n v question list fieldkey n id pagecurrent 3,page...