sql存储过程分页
Posted hanzhuopeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql存储过程分页相关的知识,希望对你有一定的参考价值。
Create PROC [dbo].[ProcPageList] (
@pageSize INT = 20, --每页记录数
@pageNo INT =1, --当前页
@tableName VARCHAR(50), --表名
@whereString VARCHAR(800) = ‘ 1=1 ‘,--WHERE条件
@orderString VARCHAR(200), --排序条件(倒序需要带desc)
@recordTotal INT OUTPUT --输出记录总数
)
AS
BEGIN
DECLARE @tempSql NVARCHAR(4000)
--输出参数@recordTotal为总记录数
SET @tempSql = N‘select @recordTotal = count(*) from ‘ + @tableName + ‘ where ‘+ @whereString
EXEC sp_executesql @tempSql,N‘@recordTotal INT OUTPUT‘,@recordTotal OUTPUT
--主查询返回结果集
SET @tempSql = N‘select * from (select *,Row_number() over(order by ‘+@orderString+‘) as rows from ‘+@tableName+‘ WHERE ‘+@whereString+‘) as main_temp where rows BETWEEN ‘+ convert(varchar(100),(@pageNo - 1) * @pageSize+ 1) + ‘ and ‘ + convert(varchar(100),@pageNo * @pageSize)
EXEC(@tempSql)
END
以上是关于sql存储过程分页的主要内容,如果未能解决你的问题,请参考以下文章