复制代码 代码如下:
CREATEPROCEDUREproc_CommonPaging
@tablenamevarchar(100),
@tablefieldvarchar(20),
@wherevarchar(5000),
@orderbyvarchar(500),
@fieldlistvarchar(1000),
@curpageint,
@page_recordint,
@sortvarchar(8)
AS
BEGIN
DECLARE@cmdvarchar(8000)
DECLARE@uprecordint
DECLARE@Opvarchar(2)--操作符
DECLARE@max_minvarchar(4)--最大/最小计算
SET@op='<'
SET@max_min='MIN'
IF@sort='asc'
BEGIN
SET@Op='>'
SET@max_min='MAX'
END
SET@uprecord=@curpage*@page_record
IF@curpage=0
SET@cmd='SELECTTOP'+cast(@page_recordASNVARCHAR)+''+@fieldlist+'FROM'+@tablename+'WHERE'+@where+''+@orderby
ELSE
SET@cmd='SELECTTOP'+cast(@page_recordASNVARCHAR)+''+@fieldlist+'FROM'+@tablename+'WHERE'+@where+'AND'+@tablefield+'
'+@op+'(SELECT'+@max_min+'('+@tablefield+')FROM(SELECTTOP'+cast(@uprecordASNVARCHAR)+''+@tablefield+'FROM'+@tablename+'WHERE
'+@where+''+@orderby+')ASTmpTbl)AND'+@where+''+@orderby
SET@cmd=@cmd+';SELECTCOUNT(*)FROM'+@tablename+'WHERE'+@where
EXEC(@cmd)
PRINT(@cmd)
END
GO
