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 –获取当前页第一个排序字段值










