• 大数据优化的分页存储过程成品


    大数据优化的分页存储过程

    ALTER PROCEDURE [dbo].[GetPagingRecord](
    @tblName nvarchar(255), -- 表名
    @strGetFields nvarchar(4000) = '*', --欲选择字段列表
    @fldName nvarchar(255), -- 排序的字段名
    @ID nvarchar(100),--主键
    @Page int, --页码
    @RecsPerPage int, --每页容纳的记录数
    @strWhere varchar(4000) = '', -- 查询条件 (注意: 不要加 where)
    @OrderType bit = 1 -- 设置排序类型, 非 0 值则降序
    )
    AS
    DECLARE @Str nVARCHAR(4000)--临时SQL语句
    declare @Sort nvarchar(50)--临时排序变量

    /*处理字段的升降序 H1_start*/
    if @OrderType=1
    set @Sort='desc'
    else
    set @Sort='asc'
    /*H1_end*/

    /*处理查询条件 H2_start*/
    set @strwhere=replace(@strwhere,'''','''''')
    set @strwhere=replace(@strwhere,'--','')
    set @strwhere=replace(@strwhere,';','')
    set @strwhere=' where 1=1 '+@strwhere
    /*H2_end*/

    SET @Str='SELECT TOP '+CAST(@RecsPerPage AS VARCHAR(20))+' '+@strGetFields+' FROM '+@tblName+' T WHERE T.'+@ID+'
    NOT IN (SELECT TOP
    '+CAST((@RecsPerPage*(@Page-1)) AS VARCHAR(20))+' '+@ID+' FROM '+@tblName+' T9
    ORDER BY
    '+@fldName+' '+@Sort+')
    ORDER BY
    '+@fldName+' '+@Sort
    PRINT @Str
    EXEC sp_ExecuteSql @Str


       本人博客的文章大部分来自网络转载,因为时间的关系,没有写明转载出处和作者。所以在些郑重的说明:文章只限交流,版权归作者。谢谢

  • 相关阅读:
    SQL Server CHARINDEX和PATINDEX详解
    Delphi7控件包详解 (转)
    经历一次人际关系危机总结,改进
    2008年5月份目标和计划
    God bless 贝贝!
    开始新的生活~~~
    一切安好~~~
    Hadoop : “Moving Computation is Cheaper than Moving Data”
    改论文,不轻言放弃,力求准确,简洁
    杜绝拖拖拉拉《明日歌》
  • 原文地址:https://www.cnblogs.com/wzg0319/p/1742901.html
Copyright © 2020-2023  润新知