zoukankan      html  css  js  c++  java
  • 使用sql2005的新特性分页的储存过程:Top,Row_Number

    GO
    /****** 对象:  StoredProcedure [dbo].[uspCustomPaging]    ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    Create procedure [dbo].[uspCustomPaging] 
        
    @TableName varchar(50),                  --表或视图名
        @Fields varchar(5000= '*',              --字段名(全部字段为*)
        @OrderFields varchar(5000),            --排序字段(必须!支持多字段,建议建索引)
        @SqlWhere varchar(5000= '',         --条件语句(如and Name='a')
        @PageSize int,                                     --每页多少条记录
        @PageIndex int = 1 ,                           --指定当前为第几页
        @TotalPages int output                    --返回总页数 
    as
    begin
        
    declare @sql nvarchar(4000)
        
    declare @TotalRecords int   

        
    --计算总记录数及总页数     
        set @sql = 'select @TotalRecords = count(*) from ' + @TableName + ' where 1=1 ' + @sqlWhere
        
    exec sp_executesql @sql,N'@totalRecords int output',@TotalRecords output
        
    select @TotalPages=CEILING((@TotalRecords+0.0)/@PageSize)

        
    --处理页数超出范围情况
        if @PageIndex<=0 
            
    set @PageIndex = 1
        
    if @PageIndex>@TotalPages
            
    set @PageIndex = @TotalPages

        
    set @sql = 'select '+ @Fields + ' from (select top(@PageIndex*@PageSize) ' + @Fields + ',row_number() over(order by ' + @OrderFields + ') as rowNumber from ' + @TableName + ' where 1=1 ' + @SqlWhere + ') t where t.rowNumber >= ((@PageIndex-1)*@PageSize+1)'
        
        
    --print @Sql   
        exec sp_executesql @sql,N'@PageIndex int, @PageSize int',@PageIndex,@PageSize  
    end
  • 相关阅读:
    Linux下常用程序的代理服务器(proxy)配置
    如何下载google play免费应用的apk文件
    sublime text多文件夹查找关键字
    linux下查看文件夹的大小
    使用virtualenv搭建独立的Python环境
    python代码中使用settings
    /lib /usr/lib /usr/local/lib区别
    修改setup.py的源
    Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling
    使用Restful风格中的post使用过遇到前端数据传送不到后端
  • 原文地址:https://www.cnblogs.com/jordan2009/p/2539114.html
Copyright © 2011-2022 走看看