rowcount output select @p1,@rowcount exec sp_cursorfetch @p1,16,1,20 exec sp_cursorclose @p1 这是个很经典的存储过程分页
存储过程与页面调用如下:CREATEPROCEDUREsearch_sp@tblNamevar 存储过程与页面调用如下: CREATE PROCEDURE...search_sp @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = '*', -- 需要返回的列 @fldName varchar...(255)='', -- 排序的字段名 @PageSize int = 10, -- 页尺寸 @PageIndex int = '', -- 页码 @doCount bit = 0, -- 返回记录总数...@doCount传递过来的不是0,就执行总数统计。...以下的所有代码都是@doCount为0的情况 else begin if @OrderType !
e.RowNo >= @PageLowerBound AND e.RowNo <= @PageUpperBound ORDER BY e.RowNo ASC END --第二种简单点的分业
/*通用分页存储过程*/ USE HotelManagementSystem GO IF EXISTS(SELECT * FROM sys.objects WHERE NAME='cndoup_GetPageOfRecords...') DROP PROCEDURE cndoup_GetPageOfRecords GO --创建存储过程 CREATE PROCEDURE cndoup_GetPageOfRecords @pageSize...主键名称 AS BEGIN --存储过程开始...DECLARE @strTemp varchar(300) DECLARE @strSql varchar(5000) --该存储过程最后执行的语句...strOrderType+') AS TabTemp)'+@strOrderType END END EXEC (@strSql) END --存储过程结束
我个人认为最好的分页方法是:Selecttop10*fromtablewherei 1。...我个人认为最好的分页方法是: Select top 10 * from table where id>200 写成存储过程,上面的语句要拼一下sql语句,要获得最后大于的哪一个ID号 2。...那个用游标的方式,只适合于小数据量的表,如果表在一万行以上,就差劲了 你的存储过程还比不上NOT IN分页,示例: SELECT Top 10 * FROM Customers WHERE Customerid...所以说,我个人的经验,就是一万上行上的表,不用游标.小数据量的表,适当的时候可以用游标 因为游标,遍历小数据量的行集还是不错的一个方法! 4。...用临时表自定义分页和使用游标自定义分页都不好!
sp_executeSql @SQl,N'@rowcount int output',@rowcount output if @PageIndex=0 and @PageSize=0 --不进行分页...set @SQl='SELECT * from '+cast(@TableName as nvarchar(3000))+' where 1=1 '+@Where end else --进行分页查询数据列表
create or replace package mypack 2 as 3 type emp_cursor is ref cursor; 4 end mypack; 分页存储过程...pro_emp( --传入表名 v_in_tableName in varchar2, --传人每页显示几条记录 v_in_pageSize in number, --传入显示第几页的记录...v_out_pageCount:=v_out_myRows/v_in_pageSize+1; end if; --close p_cursor; end pro_emp; / java代码调用sql存储过程...DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORA","scott","tiger"); //调用存储过程...DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORA","scott","tiger"); //调用存储过程
在企业级项目开发中,分页查询,获取某一类数据的List列表,这一功能是最普遍也是最重要的功能。...其做法有很多种,例如ORM中自定义分页查询,一般情况下是拼接强类型的查询条件,然后转换成sql语句,查出出分页结果。在ORM转换过程中会稍微损失性能,效率会降低。...对于百万级以上的大数据量,要求查询界面显示速度快,此时手动写存储过程,并且在存储过程中分页是最佳选择。...下面给出具体的示例与说明: ============================================= -- Author: XXX -- Create date: XXX...,rnc.StopWorkingDate --停止合作日期(最后一次发货日期) ,rnc.Arrears --截止申报日期的总欠
本文转载:http://www.cnblogs.com/xiachufeng/archive/2010/07/30/1788592.html
ALTER PROCEDURE [dbo].[procPageChangeForSql2000] ( @fromSql varchar(3000), @qu...
PACKAGE "PKG_QUERY" AS type refCursorType is REF CURSOR; --游标类型定义,用于返回数据集 END;/* 何问起 hovertree.com */ –存储过程...--每页记录数 p_PageNo int, --当前页码,从 1 开始 p_SqlSelect varchar2, --查询语句,含排序部分 p_SqlCount varchar2, --获取记录总数的查询语句...v_count/p_PageSize; else p_pageCount:=v_count/p_PageSize+1; end if; ----执行分页查询...rownum = ' || to_char(v_lowRownum) ; --注意对rownum别名的使用
replace package sp_pack_pagebycursor as type p_cursor is ref cursor; end sp_pack_pagebycursor; / --利用存储过程来实现分页功能
MySQL数据库中,自定义存储过程查询表中的数据,带有分页功能。具体实例如下代码: 1 DROP PROCEDURE IF EXISTS `sampledb`....5 IN pageIndex INT, /*当前页*/ 6 IN pageSize INT, /*每页记录数*/ 7 OUT pageCount INT,/*总记录分页数...*/ 8 out totalRecordCount int /*总记录数*/) 9 BEGIN 10 /*获取表中的记录数*/ 11 set @recordCount=0; 12...pageSize; 25 else 26 set pageCount=@recordCount div pageSize + 1; 27 end if; 28 29 /*分页显示数据...========================================================================================= MySQL大数据量分页性能优化
NULL , [Note] [nvarchar] (2000) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO 插入数据:(2万条,用更多的数据测试会明显一些...:(利用SQL的游标存储过程分页) create procedure XiaoZhengGe @sqlstr nvarchar(4000), --查询字符串 @currentpage int, ...建议优化的时候,加上主键和索引,查询效率会提高。...通过SQL 查询分析器,显示比较:我的结论是: 分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句 分页方案一:(利用Not In和SELECT TOP分页) ...效率次之,需要拼接SQL语句 分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用 本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet
分页存储过程,可以直接通过传入表名进行分页的,用到了ROW_NUMBER()函数,所以只适用于MSSQL2005以上....Sql代码 -- Description: 分页,用到了ROW_NUMBER() -- ============================================= create PROCEDURE...[proc_ShowPage] @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = '', -- 需要返回的列,默认...@strOrder varchar(255)='', -- 排序的字段名,必填 @strOrderType varchar(10)='ASC', -- 排序的方式,默认ASC @PageSize...pos BETWEEN '+str((@PageIndex-1)@PageSize+1)+' AND '+str(@PageIndex*@PageSize) exec (@strSQL) 下面是调用的示例
---判断是否存在该存储过程 IF EXISTS (SELECT * FROM DBO.SYSOBJECTS WHERE ID = OBJECT_ID(N'[dbo].
1 --分页 存储过程 案例 2 3 -- 所执行的存储过程 4 create proc pageForUsers 5 @currPage int,
model.SID.ToString()+")'>删除"); index++; } } } } 自绘分页控件...Append("'>").Append(text).Append("") ; return sb.ToString(); } } 数据访问层的调用存储过程代码...Value); pageCount = Convert.ToInt32(parameters[3].Value); return dt; } 存储过程代码
--创建人:zengfanlong --创建时间:2014-7-28 10:51:15 --说明:根据公司简写代码获取当前待同步的气瓶档案数据(分页获取) ALTER PROCEDURE [UP_GasBottles_GetSyncData_ByPage...) END ELSE BEGIN --分页获取数据
tbName varchar(255), --表名 @tbFields varchar(1000), --返回字段 @OrderField varchar(255), --排序的字段名
领取专属 10元无门槛券
手把手带您无忧上云