SP_PaginationByCursor.sql

USE [JHLKCRM]
GO
/****** Object:  StoredProcedure [dbo].[SP_PaginationByCursor]    Script Date: 05/12/2017 15:57:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
ALTER  PROC [dbo].[SP_PaginationByCursor]
@HandlerSql NVARCHAR(MAX),    --要执行的 SQL 语句
@PageIndex  INT = 1,          --要显示的页码,从 1 开始
@PageSize   INT = 10,         --每页的大小,-1 则表示获取全部
@RowsCount  INT OUTPUT        --总记录数
AS  
 
SET NOCOUNT ON
DECLARE @p1 int , @PageCount int
IF(@PageSize = -1)
    BEGIN
        EXEC(@HandlerSql)
        SET @RowsCount = @@rowcount
        RETURN
    END
ELSE
    BEGIN
        EXEC sp_cursoropen
            @cursor = @p1 OUTPUT ,
            @stmt = @HandlerSql,
            @scrollopt = 1,
            @ccopt = 1,
            @rowcount = @RowsCount OUTPUT
        IF ISNULL(@PageSize,0) < 1
            SET @PageSize = 10
 
        SELECT @PageCount = @RowsCount
        SET @PageCount = (@PageCount + @PageSize - 1)/@PageSize
   
        IF ISNULL(@PageIndex,0) < 1 OR ISNULL(@PageIndex,0) > @PageCount
            SET @PageIndex = 1
        ELSE
            SET @PageIndex = (@PageIndex - 1)*@PageSize + 1
 
        EXEC sp_cursorfetch @p1, 16, @PageIndex, @PageSize
        EXEC sp_cursorclose @p1
    END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值