-- Description: 分页输出,表中必须有一个key 和一个时间字段,以时间降序输出
-- =============================================
ALTER PROCEDURE [dbo].[mypage]
@sys_Table nvarchar(100), --查询表名
@sys_Key varchar(50), --主键
@sys_Fields nvarchar(500), --查询字段
@sys_Where nvarchar(1000), --查询条件
@sys_PageIndex int, --当前页数
@sys_PageSize int --页大小
AS
IF @sys_PageSize < 0 OR @sys_PageIndex < 0
begin
SET @sys_PageSize=10
SET @sys_PageIndex=1
end
BEGIN
DECLARE @new_where1 NVARCHAR(1000)
DECLARE @Sql NVARCHAR(4000)
DECLARE @DATETIMESTR NVARCHAR(100)
SET @DATETIMESTR='e'
IF ISNULL(@sys_Where,'') = ''
SET @new_where1 = ' '
ELSE
SET @new_where1 = ' WHERE ' + @sys_Where
SET @sql = 'select '+ @sys_fields +' from ' + @sys_Table + ' t1 ' + ' where '+ @sys_Key +' in ('
+'select top '+ ltrim(str(@sys_PageSize)) +' ' + @sys_Key + ' from '
+'('
+'select top ' + ltrim(STR(@sys_PageSize * @sys_PageIndex )) + ' ' + @sys_Key + ','+@DATETIMESTR+' FROM ' + @sys_Table + @new_where1 +' order by '+@DATETIMESTR+' desc
) t2 '
+' order by t2.'+@DATETIMESTR+' asc) order by t1.'+@DATETIMESTR+' desc'
print(@sql)
Exec(@sql)
END
分页输出,表中必须有一个key 和一个时间字段,以时间降序输出
最新推荐文章于 2021-11-10 08:00:00 发布