超棒的儲存過程分頁寫法

2022-07-23 04:00:15 字數 1492 閱讀 2733

--question獲取所有列表(分頁、排序)

---建立儲存過程

create procedure [dbo].[pr_question_getpagedlistall]  

@startrowindex int, --起始記錄號  

@maximumrows int, --記錄數   

@sortexpression varchar(1000) --排序字段

as begin  --@sortexpression引數:請根據實際查詢需要進行預設值設定

set nocount on    

---宣告查詢語句、總行數、臨時表

declare @sqlget varchar(1600)  

declare @totalrecords int    //建立表變數(總行數)

create table #pageindex    //建立臨時表,儲存資料主鍵 

[indexid] int identity (0, 1) not null,   

[questionid] int  

---設定排序條件

if @sortexpression is null --or (@sortexpression = '')     //獲取排序條件

set @sortexpression = '' --請在此處設定預設值(同時啟用上一行後半部分的判斷)    

if @sortexpression <> ''   

set @sortexpression = ' order by ' + @sortexpression    

---執行查詢語句,設定表和總行數

set @sqlget = 'select [questionid] from [dbo].[question]  ' + @sortexpression    insert into #pageindex  (   [questionid]  ) exec (@sqlget)    

set @totalrecords = @@rowcount    //設定總行數

---根據分頁值查詢question表對應資料

select   biz.[questionid],  

biz.[title],   

biz...  

from [dbo].[question] biz, #pageindex p  

where   biz.[draftquestionid] = p.[draftquestionid] and   

p.indexid >= @startrowindex and   p.indexid < @startrowindex + @maximumrows  

order by p.indexid       //將表組合進行查詢,並分頁

---關閉計數器並返回變數值

set nocount off         //將計數器開關關閉

return @totalrecords  //設定返回總行數

endgo

很強的分頁儲存過程,速度超快

create procedure dbo.pager 取得當前頁數 pagenum int,取得每頁記錄數 rowcount int,返回記錄總數 count int output as 定義起始記錄id declare start int 定義結束記錄id declare end int 設定起始...

很強的分頁儲存過程,速度超快

create procedure dbo.pager 取得當前頁數 pagenum int,取得每頁記錄數 rowcount int,返回記錄總數 count int output as 定義起始記錄id declare start int 定義結束記錄id declare end int 設定起始...

很強的分頁儲存過程,速度超快

create procedure dbo.pager 取得當前頁數 pagenum int,取得每頁記錄數 rowcount int,返回記錄總數 count int output as 定義起始記錄id declare start int 定義結束記錄id declare end int 設定起始...