两个表的分页存储过程

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

时间: 2024-12-17 11:22:08

两个表的分页存储过程的相关文章

多表查询分页存储过程,解决了第二页不显示的问题

SET ANSI_NULLS OFFGOSET QUOTED_IDENTIFIER OFFGO ALTER PROCEDURE [dbo].[UP_Pagination]/****************************************************************** 千万数量级分页存储过程 *****************************************************************参数说明:1.Tables :表名称,视

简单表的 分页存储过程 (不支持多表连接)

CREATE PROCEDURE [dbo].[P_GridViewPager] ( @recordTotal INT OUTPUT, --输出记录总数 @viewName VARCHAR(800), --表名 @fieldName VARCHAR(800) = '*', --查询字段 @keyName VARCHAR(200) = 'Id', --索引字段 @pageSize INT = 20, --每页记录数 @pageNo INT =1, --当前页 @orderString VARCHA

mysql 两表联查分页排序效率优化

数据库中有两张表 t1 存储消息信息 +-----------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI |

sql 可按任意字段排序的分页存储过程

最近做一个项目,其中有许多部分需要用到分页功能 并且这些需要分页的地方有一个共同的特点,那就是,分页,但并不是按ID(主键)来排序,而是要求按其他有重复值的列进行排序,比如,其中有一个页面,要列出将近1万条客户记录,要求按客户付费金额进行排序,这种情况,如果使用网上流行的通用分页存储过程是行不能的,比如,像下面的分页存储过程虽然很棒,可是,用在这里的话,就无计可施:(这个存储过程是我在CSDN上看到一位前辈高人写的) CREATE PROCEDURE GetRecordFromPage @tbl

SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)

原文:SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页) SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅途(www.Zuowenjun.cn) --CreateDate:2015-06-02 --Function:分页获取数据 /******************/ crea

完整SQL分页存储过程(支持多表联接)

http://www.cnblogs.com/andiki/archive/2009/03/24/1420289.html Code/********************************************************* * 作 用:数据分页(完整SQL分页存储过程(支持多表联接))* 作 者:齐李平* 创建日期:2009-03-23* 使用说明: 1.单表调用方法:EXEC proc_DataPagination @tblName = 'ipa',@fldName

SQL 单表分页存储过程和单表多字段排序和任意字段分页存储过程

  第一种:单表多字段排序分页存储过程       --支持单表多字段查询,多字段排序 create PROCEDURE [dbo].[UP_GetByPageFiledOrder] ( @TableName varchar(50), --表名 @ReFieldsStr varchar(200) = '*', --字段名(全部字段为*) @OrderString varchar(200), --排序字段(必须!支持多字段不用加order by) @WhereString varchar(500)

row_number() over 两表连接分页SQL

--总条数 SELECT COUNT(1) FROM dbo.osaleh INNER JOIN dbo.osaled ON dbo.osaleh.osaleh_osalehID=dbo.osaled.osaled_osalehID WHERE --两表连接分页 SELECT * FROM( SELECT ROW_NUMBER() OVER ( ORDER BY osaleh_osalehID DESC ) AS rownum, dbo.osaleh.osaleh_osalehID, dbo.o

两个分页存储过程

1.分页存储过程 Create PROCEDURE [dbo].[PageRead] @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = '*', -- 需要返回的列 @fldName varchar(255)='',--主键@ascName varchar(255)='', -- 排序的字段名 @PageSize int , -- 页尺寸 @PageIndex int, -- 页码 @doCount bit , -- 返回记录总