通用分页存储过程,源码共享,大家共同完善

2020-07-10 08:06:42易采站长站整理

set @SQL1 = @SQL1 + ‘ select ‘ + @Fields + ‘ from ‘ + @Tables + ‘ where 1<>1’
set @SQL1 = @SQL1 + ‘ select 0 as PageIndex,0 as PageCount,’ + convert(varchar, @PageSize) + ‘ as PageSize,0 as TotalCount’
set @SQL1 = @SQL1 + ‘ return end’
set @SQL1 = @SQL1 + ‘ set @PageCount=(@TotalCount+’ + convert(varchar, @PageSize) + ‘-1)/’ + convert(varchar, @PageSize)    –获取总页数
set @SQL1 = @SQL1 + ‘ set @PageIndex=’ + convert(varchar, @PageIndex)    –设置正确的页索引
set @SQL1 = @SQL1 + ‘ if @PageIndex<0 set @PageIndex=1’
set @SQL1 = @SQL1 + ‘ if @PageIndex>@PageCount and @PageCount>0 set @PageIndex=@PageCount’
set @SQL1 = @SQL1 + ‘ set @StartRow=(@PageIndex-1)*’ + convert(varchar, @PageSize) + ‘+1’
if (charindex(‘,’, @OrderBy)=0 and charindex(@PK, @OrderBy)>0)
begin
    –****************************************************************************
    –****************不需要创建主键********************************************
    –****************************************************************************
    declare @SortDirection varchar(10)    –排序方向,>=:升序,<=:倒序
    set @SortDirection = ‘>=’
    if charindex(‘desc’, @OrderBy) > 0
        set @SortDirection = ‘<=’
    set @SQL2 = @SQL2 + ‘ declare @Sort varchar(100)’    –声明一个变量,用来记录当前页第一条记录的排序字段值
    set @SQL2 = @SQL2 + ‘ set rowcount @StartRow’    –设置返回记录数截止到当前页的第一条
    set @SQL2 = @SQL2 + ‘ select @Sort=’ + @PK + ‘ from ‘ + @Tables + @Where + ‘ order by ‘ + @OrderBy    –获取当前页第一个排序字段值
相关文章 大家在看