SQL 分頁儲存過程

2021-05-12 19:48:49 字數 1311 閱讀 2069

create procedure splitpage

@sql nvarchar(4000), --不帶排序語句的sql語句

@page int, --頁碼

@recsperpage int, --每頁容納的記錄數

@id varchar(255), --需要排序的不重複的id號

@sort varchar(255) --排序欄位及規則

asdeclare @str nvarchar(4000)

set @str='select top '+cast(@recsperpage as varchar(20))+' * from 

('+@sql+') t where t.'+@id+'not in (select top '+cast((@recsperpage*(@page-1)) 

as varchar(20))+' '+@id+' from ('+@sql+') t9 order by '+@sort+') order by '+@sort

exec sp_executesql @str

go網上的有點錯誤

呼叫測試

declare

@sql nvarchar(4000), --不帶排序語句的sql語句

@page int, --頁碼

@recsperpage int, --每頁容納的記錄數

@id varchar(255), --需要排序的不重複的id號

@sort varchar(255) --排序欄位及規則

set @sql = 'select vcid,vcname,vccomment from sys_role'

set @page = 2

set @recsperpage = 2

set @id = 'vcid '

set @sort = 'vcid asc '

exec splitpage @sql,@page,@recsperpage,@id,@sort

declare @str nvarchar(4000)

set @str='select top '+cast(@recsperpage as varchar(20))+' * from 

('+@sql+') t where t.'+@id+'not in (select top '+cast((@recsperpage*(@page-1)) 

as varchar(20))+' '+@id+' from ('+@sql+') t9 order by '+@sort+') order by '+@sort

print @str

exec sp_executesql @str

sql 儲存過程分頁

create proc myx prpagerecordset querystr nvarchar 1000 keyfield nvarchar 200 pagesize int,pagenumber int as begin declare sqltext as nvarchar 4000 dec...

SQL 儲存過程 分頁

1.俄羅斯儲存過程 的改良版 create procedure pagination1 pagesize int,頁面大小,如每頁儲存20條記錄 pageindex int 當前頁碼 as set nocount on begin declare indextable table id int id...

SQL分頁儲存過程

create procedure prcpager 獲得某一頁的資料 currpage int 1,當前頁頁碼 即top currpage showcolumn varchar 2000 需要得到的字段 即 column1,column2,tabname varchar 2000 需要檢視的表名 即...