• 针对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修改过

  • 相关阅读:
    删除 Visual studio 生成后的临时文件
    C# 中的委托和事件(转)
    C#复制DataRow出现“该行已经属于此表”错误的解决办法(转)
    ini配置文件读取类
    c# wpf窗体前端显示问题
    注册系统热键类(原创)
    C# 窗体最小化的托盘/系统通知区域(转)
    php explode()返回值
    $_SERVER['SCRIPT_NAME']
    svn合并初次使用心得
  • 原文地址:https://www.cnblogs.com/liulun/p/2723726.html
Copyright © 2020-2023  润新知