Getting paged data from SQL Server stored procedure

Posted by Max | Posted in Uncategorized, programming | Posted on 07-08-2009

0

A simple solution if you need to return a paged data from SQL Server stored procedure


CREATE PROCEDURE [dbo].[XXX]
(
	@PageSize int = NULL,
	@PageNumber int = NULL
)
AS
BEGIN

	-- Calculate row number offsets for query.
	DECLARE @FirstRow INT, @LastRow INT
	SELECT @FirstRow = (@PageNumber - 1) * @PageSize + 1;
	SELECT @LastRow = (@PageNumber - 1) * @PageSize + @PageSize;

	-- COMMON TABLE EXPRESSION TO PERFORM PAGING LOGIC
	WITH QueryResults AS
	(
		SELECT *,
			"RowNumber" = ROW_NUMBER() OVER (ORDER BY UserID ASC)
		FROM   Users C
	)
	SELECT	*
	FROM QueryResults
	WHERE RowNumber BETWEEN @FirstRow AND @LastRow
	ORDER BY RowNumber ASC
END
GO

Write a comment