• SqlServer 存储过程分页


    适用于2005以上版本

    create procedure [dbo].[SP_GetPageList]
    (
    @columns nvarchar(max),   --查询字段
    @tablename nvarchar(max), --表名视图
    @orderby nvarchar(max),   --排序字段
    @swhere nvarchar(max),     --查询条件
    @pagesize int,             --每页条数
    @pageindex int,            --页的索引
    @rowCount int output       --总记录数
    )
    as 
    
    --获取总记录数
    declare @sqlcount Nvarchar(max)
    set @sqlcount=N'select @rowCount=count(*) from '+@tablename+' '+@swhere
    exec sp_executesql @sqlcount, N'@rowCount int out', @rowCount out
    
    
    --计算页数
    declare @pagecout int 
    if @rowCount%@pagesize>0
    set @pagecout=(@rowCount/@pagesize)+1
    else
    set @pagecout=(@rowCount/@pagesize)
     
    
    --计算起始索引
    declare @begin nvarchar(30)
    declare @end nvarchar(30)
    
    if @pageindex<1
    set @pageindex=1
    
    if @pageindex>@pagecout
    set @pageindex=@pagecout
    set @begin=convert(nvarchar(30), (@pagesize*(@pageindex-1))+1)
    set @end=CONVERT(nvarchar(30), @pagesize*@pageindex)
    
    
    --查询结果
    declare @sqlre nvarchar(max)
    declare @top int
    set @top=@pageindex*@pagesize
    set @sqlre=N'select top '+Cast(@top as varchar)+' ROW_NUMBER() over('+@orderby+') as rownum, '+@columns+' from '+@tablename+' '+@swhere
    
    exec('select '+@columns+' from ('+@sqlre+') a where a.rownum between '+@begin+' and '+@end+' '+@orderby)
  • 相关阅读:
    简单的描述关于开发部署产生401,500的错误处理
    文件的批量打包下载
    json的序列化与反序列化
    实现MD5的加密和解密
    dropdownlist的OnSelectedIndexChanged方法不触发
    sqlserver错误2,error 40
    C#存储过程调用的三个方法
    SQL Server 错误:924 解决方法
    判断是否在时间间隔内
    切面添加日志
  • 原文地址:https://www.cnblogs.com/crazy29/p/3195929.html
Copyright © 2020-2023  润新知