SQL SERVER 分页查询存储过程

Posted 江渔湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL SERVER 分页查询存储过程相关的知识,希望对你有一定的参考价值。

/****** Object: StoredProcedure [dbo].[usp_selectbypage] Script Date: 01/14/2020 07:51:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[usp_selectbypage]
@tablename varchar(10),
@columnname varchar(10),
@page varchar(5), ---页数
@pagecount varchar(5), --每页行数
@recordcount int output,--总的记录的条数
@pageamount int output --总页数
as
begin
declare @strsql nvarchar(255)

set @strsql = ‘select * from (
select ROW_NUMBER() over (order by ‘ + @columnname + ‘ desc) as rowid,* from ‘ + @tablename + ‘) t
where t.rowid >=((‘+@page+‘-1)*‘+@pagecount+‘+1) and t.rowid <= (‘+@page+‘*‘+@pagecount+‘)‘

exec (@strsql) -----不是有效的标识符 sql,exec执行时必须加()

set @strsql = ‘select @count=count(*) from ‘ + @tablename

exec sp_executesql @strsql,N‘@count int output‘,@recordcount output

select @pageamount = CEILING(@recordcount*1.0/@pagecount)

end

以上是关于SQL SERVER 分页查询存储过程的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server存储过程同时返回分页结果集和总数

(问题解决再追加100分)sql server存储过程实现查询数据条数过大,分页查询怎么实现?

sql server分页存储过程

sql server 分页存储过程

存储过程sql server中的分页

初识 Sql Server存储过程