SQL SERVER 一个简单统用的翻页函数:
CREATE PROCEDURE DEMO_Easy_Page
(
@SQL TEXT = 'SELECT 1', --要执行的SQL语句
@PAGEINDEX INT = 0, --页索引
@PAGESIZE INT = 100, --页记录
@PAGECOUNT INT OUTPUT --总页数
)
AS
SET NOCOUNT ON
DECLARE @P1 INT
DECLARE @ROWCOUNT INT --总记录
SET @PAGECOUNT=(@PAGEINDEX)*@PAGESIZE+1 --页号从0开始
EXEC SP_CURSOROPEN
@P1 OUTPUT,
@SQL,@SCROLLOPT=1,
@CCOPT=1,
@ROWCOUNT=@ROWCOUNT OUTPUT
EXEC SP_CURSORFETCH
@P1,
16,
@PAGECOUNT,
@PAGESIZE
EXEC SP_CURSORCLOSE @P1
IF(@ROWCOUNT % @PAGESIZE <> 0 )
BEGIN
SET @PAGECOUNT = (@ROWCOUNT/@PAGESIZE) + 1
END
ELSE
BEGIN
SET @PAGECOUNT = (@ROWCOUNT/@PAGESIZE)
END
print @PAGECOUNT
SET NOCOUNT OFF
CREATE PROCEDURE DEMO_Easy_Page
(
@SQL TEXT = 'SELECT 1', --要执行的SQL语句
@PAGEINDEX INT = 0, --页索引
@PAGESIZE INT = 100, --页记录
@PAGECOUNT INT OUTPUT --总页数
)
AS
SET NOCOUNT ON
DECLARE @P1 INT
DECLARE @ROWCOUNT INT --总记录
SET @PAGECOUNT=(@PAGEINDEX)*@PAGESIZE+1 --页号从0开始
EXEC SP_CURSOROPEN
@P1 OUTPUT,
@SQL,@SCROLLOPT=1,
@CCOPT=1,
@ROWCOUNT=@ROWCOUNT OUTPUT
EXEC SP_CURSORFETCH
@P1,
16,
@PAGECOUNT,
@PAGESIZE
EXEC SP_CURSORCLOSE @P1
IF(@ROWCOUNT % @PAGESIZE <> 0 )
BEGIN
SET @PAGECOUNT = (@ROWCOUNT/@PAGESIZE) + 1
END
ELSE
BEGIN
SET @PAGECOUNT = (@ROWCOUNT/@PAGESIZE)
END
print @PAGECOUNT
SET NOCOUNT OFF