两个表的分页存储过程

Posted 576

tags:

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

create proc [dbo].[usp_contacts_select_by_page]--存储过程名称

@pageindex int,--当前页

@pagesize int,--每页条数

@pagecount int output,--总页数

@recordcount int output--总条数

as

begin

select c1.*,c2.groupName into #tmp_contacts from Contacts as c1 inner join

ContactGroup as c2 on c1.groupId=c2.groupId--将两个表中的数据存放到临时表中

select * from

(select *,rn=ROW_NUMBER()over(order by contactId asc)from #tmp_contacts)as t

where t.rn between(@pageindex-1)*@pagesize+1 and @pageindex*@pagesize

set @recordcount=(select COUNT(*)from #tmp_contacts)

set @pagecount=CEILING(@recordcount*1.0/@pagesize)

end

执行

declare @m int,@n int

exec [dbo].[usp_contacts_select_by_page] 2,5,@m output,@n output

print @m

print @n

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

老码农怀旧一个简单好用的分页存储过程

存储过程的分页

用存储过程创建的分页

一种效率比较高的分页存储过程

基于Dapper的分页实现,支持筛选,排序,结果集总数,非存储过程

sql server 带输入输出参数的分页存储过程(效率最高)