/**//* ****************************************************************************************** 存储过程名称:Common_Pagination 存储过程功能:通用分页存储过程 操 作 说 明 : 设 计 时 间 :2004年11月01日 代码设计者 :小朱(zsy619@163.com) ****************************************************************************************** 功能描述: ****************************************************************************************** 如果您修改了我的程序,请留下修改记录,以便对程序进行维护,谢谢 !!! ========================================================================================== 修改人 修改时间 修改原因 ------------------------------------------------------------------------------------------ ========================================================================================== ****************************************************************************************** 备注: ****************************************************************************************** */ CREATEPROCEDURE[dbo].[Common_Pagination] @SQLvarchar(8000), --TSQL语句 @PageCurrint, --第几页 @PageSizeint, --PageSize @IDvarchar(255), --关键字 @Sortvarchar(255), --排序字段 @descbit=0, --升序/降序 @pageCountint output AS declare@Strvarchar(8000) if (@desc=1) set@Str='SELECT TOP '+CAST(@PageSizeasvarchar(20)) +' * FROM ('+@SQL+') T WHERE T.'+@ID+' NOT IN (SELECT TOP ' +cast((@PageSize*(@PageCurr-1)) asvarchar(20)) +'' +@ID+' FROM ('+@SQL+') T2 ORDER BY '+@Sort+' DESC) ORDER BY ' +@Sort else set@Str='SELECT TOP '+CAST(@PageSizeasvarchar(20)) +' * FROM (' +@SQL+') T WHERE T.'+@ID+' NOT IN (SELECT TOP ' +cast((@PageSize*(@PageCurr-1)) asvarchar(20)) +''+@ID+' FROM (' +@SQL+') T2 ORDER BY '+@Sort+' ASC) ORDER BY '+@Sort if (@desc=1) set@str=@str+' DESC' else set@str=@str+' ASC' exec(@Str) select@Str='select '+@Sort+' from ('+@sql+') t' exec(@str) select@pageCount=@@rowcount GO