SQL Server 通用分頁儲存過程

2022-02-09 00:25:26 字數 1597 閱讀 4243

create

proc

proc_selectforpager(

@tb_name

varchar(max) ,--

表名@order

varchar(4000) ,--

排序字段

@offset

int ,--

跳過記錄數

@field

varchar(400),--

查詢字段

@limit

int,--

每頁顯示記錄數

--@strwhere nvarchar(4000),--where 條件

@totalcount

intoutput)as

declare

@exec_sql

nvarchar(max)/*

設定where 條件

set @strwhere=isnull(@strwhere,' where 1=1 ')

set @strwhere=' where 1=1 and '

*//*

查詢總記錄數

*/set

@exec_sql='

set @totalcount=(select count(1) from '+

@tb_name+'

as a)

'exec sp_executesql @exec_sql,n'

@totalcount int output

',@totalcount

output

/*設定排序字段

*/set

@order

=isnull('

order by '+

nullif(@order,''),'

order by getdate()')

/*分頁查詢

*/--

set @exec_sql='

--;with cte as--(

--select *,row_number() over('+@order+') as r from (select * from '+@tb_name+') as a --)

--select '+@field+' from cte where r between (@currentpage-1)*@pagesize+1 and @currentpage*@pagesize order by r--'

--採用bootstrap 分頁記錄方式

set@exec_sql='

;with cte as

(select *,row_number() over('+

@order+'

) as r from (select * from '+

@tb_name+'

) as a

)select '+

@field+'

from cte where r between @offset and @limit order by r

'exec sp_executesql @exec_sql,n'

@offset int,@limit int

',@offset,@limit

通用分頁儲存過程 sqlserver

獲取指定頁的資料 create procedure sppagination tblname varchar 255 表名 strgetfields varchar 1000 需要返回的列 fldname varchar 255 排序的欄位名 pagesize int 10,頁尺寸 pageinde...

sqlserver 通用分頁儲存過程

示例一create procedure commonpagination columns varchar 500 要顯示的列名,用逗號隔開 tablename varchar 100 要查詢的表名 ordercolumnname varchar 100 排序的列名 order varchar 50 ...

通用分頁儲存過程 sqlserver

獲取指定頁的資料 create procedure sppagination tblname varchar 255 表名 strgetfields varchar 1000 需要返回的列 fldname varchar 255 排序的欄位名 pagesize int 10,頁尺寸 pageinde...