@Where varchar(500), 查询条件(Code like ‘100’)
@OrderBy varchar(100), 排序条件(支持多个排序字段,如:ID,Code desc,Name desc)
@PageIndex int, 当前要显示的页的页索引,索引从1开始,无记录时为0。
@PageSize int, 页大小
创建者:Hollis Yao
创建日期:2006-08-06
备注:
============================================================
*/
Create PROCEDURE [dbo].[Sp_Paging]
@PK varchar(50)=”,
@Fields varchar(500),
@Tables varchar(1000),
@Where varchar(500)=”,
@OrderBy varchar(100),
@PageIndex int,
@PageSize int
AS
–替换单引号,避免构造SQL出错
set @Fields = replace(@Fields, ””, ”””)
–要执行的SQL,切分为几个字符串,避免出现长度超过4k时的问题
declare @SQL1 varchar(4000)
declare @SQL2 varchar(4000)
set @SQL1 = ”
set @SQL2 = ”
if @Where is not null and len(ltrim(rtrim(@Where))) > 0
set @Where = ‘ where ‘ + @Where
else
set @Where = ‘ where 1=1’
set @SQL1 = @SQL1 + ‘ declare @TotalCount int’ –声明一个变量,总记录数
set @SQL1 = @SQL1 + ‘ declare @PageCount int’ –声明一个变量,总页数
set @SQL1 = @SQL1 + ‘ declare @PageIndex int’ –声明一个变量,页索引
set @SQL1 = @SQL1 + ‘ declare @StartRow int’ –声明一个变量,当前页第一条记录的索引
set @SQL1 = @SQL1 + ‘ select @TotalCount=count(*) from ‘ + @Tables + @Where –获取总记录数
set @SQL1 = @SQL1 + ‘ if @PageCount <= 0 begin’ –如果记录数为0,直接输出空的结果集










