天天看點

分頁存儲過程

IF EXISTS(SELECT Name FROM SYSOBJECTS WHERE Name='PrcPager' AND TYPE='P')

DROP PROCEDURE PrcPager

GO

CREATE PROCEDURE PrcPager

-- 獲得某一頁的資料 --

@currPage int = 1, --目前頁頁碼 (即Top currPage)

@showColumn varchar(2000) = '*', --需要得到的字段 (即 column1,column2,......)

@tabName varchar(2000), --需要檢視的表名 (即 from table_name)

@strCondition varchar(2000) = '', --查詢條件 (即 where condition......) 不用加where關鍵字

@ascColumn varchar(100) = '', --排序的字段名 (即 order by column asc/desc)

@bitOrderType bit = 0, ---排序的類型 (0為升序,1為降序)

@pkColumn varchar(100) = '', --主鍵名稱

@pageSize int = 20 --分頁大小

AS

BEGIN -- 存儲過程開始

-- 該存儲過程需要用到的幾個變量

DECLARE @strSql varchar(4000) --該存儲過程最後執行的語句

DECLARE @strOrderType varchar(1000) --排序類型語句 (order by column asc或者order by column desc)

BEGIN

IF @bitOrderType = 1 -- bitOrderType=1即執行降序

END

ELSE

IF @currPage = 1 -- 如果是第一頁

IF @strCondition != ''

ELSE -- 其他頁

IF @strCondition !=''

EXEC (@strSql)

--print @strSql

END -- 存儲過程結束