CREATE PROCEDURE dbo.Forum_UserGetAll
@PortalId int,
@PageIndex int,
@PageSize int
AS
BEGIN
DECLARE @PageLowerBound INT
DECLARE @PageUpperBound INT
SET @PageLowerBound = @PageSize * @PageIndex
SET @PageUpperBound = @PageSize - 1 + @PageLowerBound
CREATE TABLE #PageIndexForUsers
(
IndexId int IDENTITY(0, 1)
NOT NULL,
UserId int
)
INSERT INTO #PageIndexForUsers ( UserId )
SELECT DISTINCT
( UserId )
FROM dbo.Forum_Users
WHERE ( PortalId = @PortalId )
SELECT *
FROM dbo.Forum_Users FU
INNER JOIN dbo.Users U ON FU.UserID = U.UserID
INNER JOIN #PageIndexForUsers P ON U.UserID = P.UserID
WHERE u.UserId = p.UserId
AND ( PortalId = @PortalId )
AND p.IndexId >= @PageLowerBound
AND p.IndexId <= @PageUpperBound
ORDER BY FirstName + ' ' + LastName
SELECT TotalRecords = COUNT(*)
FROM #PageIndexForUsers
END
GO