zoukankan      html  css  js  c++  java
  • 针对Ext js的分页存储过程适用于sqlserver2008

    USE [UTMP_RC_121213]
    GO
    /****** Object:  StoredProcedure [dbo].[PageProc]    Script Date: 01/05/2013 08:45:56 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:        刘晓伦
    -- Create date: 12-10-13
    -- Description:    分页存储过程,
    -- 如果使用ExcuteReader()方法执行此存储过程
    -- 必须先reader.close()才能得到输出参数
    -- =============================================
    ALTER PROCEDURE [dbo].[PageProc]
    ( 
    @sqlStr     nvarchar(max),    ----SQL语句 
    @startRow   int,        ----开始的行
    @pageSize   int,        ----一页多少行
    @orderBy    nvarchar(max),    ----排序条件 
    @rowCount    int = 1 output  ----一共多少行
    ) AS
    BEGIN
    SET NOCOUNT ON;
    Declare @sql nvarchar(max)
    Declare @csql nvarchar(max)
    --todo:此处为了方便使用,没有考虑性能,意图是得到一共有多少行
    select @csql = 'select @Counts = count(*) from ('+@sqlStr+') as t'
    select @sql = 'select * from (select ROW_NUMBER() OVER (#order_by_replace_holder#)  AS RINDEX ,* FROM ( '+@sqlStr+' ) as t ) as b where '+ CAST(@startRow+1 as varchar)+' <= RINDEX and RINDEX <= '+CAST(@startRow+@pageSize as varchar)
    select @sql = REPLACE(@sql,'#order_by_replace_holder#',@orderBy)
    --把一共有多少行记录写入输出参数
    exec sp_executesql @csql,N'@Counts int out ',@rowCount out 
    --获得检索结果
    exec sp_executesql @sql
        
    END

    在2013-1-5修改过

  • 相关阅读:
    5773. 【NOIP2008模拟】简单数学题
    jzoj_5455. 【NOIP2017提高A组冲刺11.6】拆网线
    5461. 【NOIP2017提高A组冲刺11.8】购物
    博客第三天
    博客第二天
    博客的第一天。
    微服务架构下的session一致性
    分布式数据库数据一致性的原理、与技术实现方案
    epoll的本质
    DNS域名解析过程
  • 原文地址:https://www.cnblogs.com/liulun/p/2723726.html
Copyright © 2011-2022 走看看