sqlserver分页存储过程
Posted sakugamitomoyo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver分页存储过程相关的知识,希望对你有一定的参考价值。
稍微把网上流传的通用改了一下,连表查询的结果也能返回了
create PROC [dbo].[PageView] ( @sql nvarchar(max),---原本查询语句 @PageIndex int, --页码 @PageSize int, --每页容纳的记录数 @Sort VARCHAR(255), --排序字段及规则,不用加order by @GetCount bit --是否得到记录总数 1为得到记录总数,0为不得到记录总数,返回记录集 ) AS declare @strSql nvarchar(max) set nocount on; if(@GetCount = 1) begin set @strSql=‘ SELECT COUNT(*) as getrowcount FROM (‘[email protected]+‘) t‘ end else begin set @strSql=‘ SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY ‘ + @Sort + ‘) AS rownum, * FROM (‘[email protected]+‘) AS Dwhere ) t WHERE t.rownum BETWEEN ‘ + CAST(((@PageIndex-1)*@PageSize + 1) as varchar(20)) + ‘ and ‘ + cast((@PageIndex*@PageSize) as varchar(20)) end exec (@strSql) set nocount off;
执行一下
exec book.dbo.PageView ‘select * from book where id<58385557‘,1,2,‘id desc‘,1 exec book.dbo.PageView ‘select * from book where id<58385557‘,1,2,‘id desc‘,0
结果
以上是关于sqlserver分页存储过程的主要内容,如果未能解决你的问题,请参考以下文章