• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    一个基于ROW_NUMBER()的通用分页存储过程代码
    建立好如下的存储过程,以后要分页,直接调用改存储过程就可以了。
    注意:数据量大、性能要求高的,请个性化处理。
    复制代码 代码如下:

    ALTER PROCEDURE [dbo].[COMMON_PROCEDURE_SelectWithPage]
    @Sql VARCHAR(5000),
    @CurrentPageNo INT,
    @PageSize INT,
    @TotalNum INT OUTPUT
    AS
    SET NOCOUNT ON
    DECLARE @SqlCmd VARCHAR(5000)
    ------------------------------------------ --查询数据
    SET @SqlCmd = 'SELECT * FROM (' + @Sql + ') A WHERE RowIndex BETWEEN ' + CONVERT(VARCHAR,(@CurrentPageNo-1) * @PageSize + 1) + ' AND ' + CONVERT(VARCHAR,@CurrentPageNo * @PageSize)
    EXEC(@SqlCmd) PRINT (@SqlCmd)
    ------------------------------------------ --求记录总数
    IF @TotalNum = -1
    BEGIN
    CREATE TABLE #Temp1(num INT)
    INSERT INTO #Temp1
    EXEC('SELECT count(*) FROM (' + @Sql + ') A')
    SELECT @TotalNum=(SELECT * FROM #Temp1)
    DROP TABLE #Temp1
    END

    用法很简单,但必须在传入的SQL中使用ROW_NUMBER() OVER(...) AS RowIndex :
    DECLARE @Sql VARCHAR(5000)
    DECLARE @CurrentPageNo INT
    DECLARE @PageSize INT
    DECLARE @TotalNum INT

    SET @CurrentPageNo = 100
    SET @PageSize = 10
    SET @TotalNum = -1
    SET @Sql = ' SELECT *, ROW_NUMBER() OVER (ORDER BY 排序字段) AS RowIndex FROM 表名 A WITH (NOLOCK) '

    EXEC [dbo].[COMMON_PROCEDURE_SelectWithPage] @Sql,@CurrentPageNo,@PageSize,@TotalNum OUTPUT

    SELECT @TotalNum
    您可能感兴趣的文章:
    • sqlserver 通用存储过程分页代码(附使用ROW_NUMBER()和不使用ROW_NUMBER()两种情况性能分析)
    • sqlserver2005使用row_number() over分页的实现方法
    • Oracle row_number() over()解析函数高效实现分页
    • C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序
    • SQL2005利用ROW_NUMBER() OVER实现分页功能
    • 高效的SQLSERVER分页查询(推荐)
    • 解析数据库分页的两种方法对比(row_number()over()和top的对比)
    • 使用row_number()实现分页实例
    • SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同
    • SQL Server使用row_number分页的实现方法
    上一篇:MSSQL 将截断字符串或二进制数据问题的解决方法
    下一篇:利用脚本自动安装SQLServer的实现步骤分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    一个基于ROW_NUMBER()的通用分页存储过程代码 一个,基于,ROW,NUMBER,的,通用,