你的位置:首页 > 数据库

[数据库]两个表的分页存储过程


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