SQL SERVER分页存储过程(效率版)
CREATE PROC 存储过程
@PageIndex INT,
@PageCount INT,
@PageRecordCount INT OUT,
@Keyword NVARCHAR(100)
AS
DECLARE @StartNum INT,@EndNum INT
DECLARE @TEMP TABLE
(
Id INT,
RowNum INT
)
INSERT INTO @TEMP
SELECT SESSION_ID,ROW_NUMBER() OVER(ORDER BY TIME DESC) AS RowNum FROM 表
WHERE (@Keyword = NULL OR NAME LIKE @Keyword)
SELECT @PageRecordCount = COUNT(1) FROM @TEMP
SET @StartNum = (@PageIndex - 1) * @PageCount
SET @EndNum = @PageCount * @PageIndex
SELECT S.ID,S.其他字段
FROM 表 S
INNER JOIN (
SELECT Id,RowNum FROM @TEMP
) AS T
ON T.Id = S.ID