分页存储过程sql2000,支持 多字段 排序

来源:百度文库 编辑:神马文学网 时间:2024/06/05 09:12:41
------------------------------------------------------------------------------------------------------------------------
-- Date Created: 2007-6-18 10:43:58
-- Created By:www.feifanit.com.cn : liyu
------------------------------------------------------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[proc_GetExp_SubjectBudgetList]
@PageIndex int,
@PageSize int,
@SQLString varchar(1000),
@RecordCount int output
AS
DECLARE @PageLowerBound int
DECLARE @PageUpperBound int
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET @PageLowerBound = @PageSize * (@PageIndex-1) + 1
SET @PageUpperBound = @PageSize * @PageIndex
Create Table #TempRecord (IndexID int IDENTITY (1, 1) NOT NULL,ID bigint)
Insert into #TempRecord (ID) exec('select SubjectID FROM Exp_SubjectBudget ' + @SQLString)
select @RecordCount = max(IndexID) from #TempRecord
SELECT
[SubjectID],
[SubjectBudget],
[Year],
[Month],
[Budget],
[DeptName],
[DeptID]
FROM
[dbo].[Exp_SubjectBudget]
inner join #TempRecord on #TempRecord.Id = [SubjectID]
where #TempRecord.IndexID >= @PageLowerBound AND #TempRecord.IndexID <= @PageUpperBound
order by #TempRecord.IndexID
GO