分頁儲存過程 三

2021-09-06 14:08:48 字數 1360 閱讀 9793

set quoted_identifier off

goset ansi_nulls on

go--名稱:分頁儲存過程

--使用示例 exec sp_pageindex '*',' from stusources ',2,10

--注意

--目前還沒有對輸入的引數進行嚴格的驗證

--預設為輸入都是合法有效的

alter proc sp_pageindex

@sqlselect varchar(800) --select 後面 from 前面 的 字段 不用包含select

,@sqlfrom varchar(800) --from 後面 的 字段 包含from

,@countperpage int -- 每頁資料行數

,@topage int --要轉到的頁碼

asbegin

-- 根據每頁資料行數 和 要轉到的頁碼 得到 資料起止點

declare @start int

declare @end int

set @end = @countperpage * @topage

set @start = @countperpage * (@topage - 1) + 1

-- 臨時表名稱 可隨機命名

declare @tmptable varchar(10)

set @tmptable ='#tmp'

declare @sqlstr varchar(800)

-- 建立資料來源到臨時表

select @sqlstr = 'select identity(int,1,1) as rowindex,'

select @sqlstr = @sqlstr + rtrim(@sqlselect) + ' into '+ @tmptable

select @sqlstr = @sqlstr + rtrim(@sqlfrom)

-- 查詢臨時表 得到所需要的資料

select @sqlstr = @sqlstr + ' '+'select '+ rtrim(@sqlselect) +' from ' + @tmptable

select @sqlstr = @sqlstr + ' where rowindex between ' + convert(char,@start) + " and " + convert(char,@end)

-- 刪除臨時表

select @sqlstr = @sqlstr + ' '+'drop table '+@tmptable

exec (@sqlstr)

endgo

set quoted_identifier off

goset ansi_nulls on

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

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