这是一个通用的分页存储过程,利用的是sql的系统游标
这种效率并不是很好
create PROC sp_Pageview
@sql ntext, --要执行的sql语句
@PageCurrent int=1,
@PageSize int=10,
@PageCount int output
as
set nocount on
declare @p1 int
--初始化分页游标
exec sp_cursoropen
@cursor=@p1 output,
@stmt=@sql,
@scrollopt=1,
@ccopt=1,
@rowcount=@PageCount output
--计算总页数
if isnull(@PageSize,0)<1
set @PageSize=10
set @PageCount=(@PageCount+@PageSize-1)/@PageSize
if isnull(@PageCurrent,0)<1 or isnull(@PageCurrent,0)>@PageCount
set @PageCurrent=1
else
set @PageCurrent=(@PageCurrent-1)*@PageSize+1
--显示指定页的数据
Exec sp_Cursorfetch @p1,16,@PageCurrent,@PageSize
--关闭分页游标
Exec sp_cursorclose @p1
建议使用下面这种,不过并不怎么通用,效率要好很多了,试着写成通用,但是表变量不好在动态sql中使用:
CREATE proc Proc_paged
(
@pagesize int,
@pagenum int,
@pagecount int output
)
as
begin
--声明变量
declare @tmptable table(id int identity (1,1),userid nchar(5))
declare @idBengin int
declare @idend int
--构造内存表
insert into @tmptable (userid )(select member_inner_code from MO_Member)
select @pagecount=count(*) from @tmptable
if(@pagecount%@pagesize>0)
set @pagecount=@pagecount/@pagesize+1
else
set @pagecount=@pagecount/@pagesize
set @idBengin=(@pagenum-1)*@pagesize
set @idend=@idBengin+@pagesize
select t2.id,t1.* from MO_Member t1,@tmptable t2 where t1.member_inner_code=t2.userid and
t2.id>@idBengin and t2.id<=@idend
end
GO
分享到:
相关推荐
sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程
SQL 通用 分页 存储 过程 完整代码
通用sql分页存储过程,提供12参数可供选择。其中,提供两种分页方案被选择和相关排序方式,支持自定义查询、自定义排序等
通用的Sql Server分页程序,并且符合BootStrap Table 的调用标准.
对SQL分页的万能存储过程,很全面的分析和描述,请大家支持
本文将详细解析"经典的分页、排序SQL 通用存储过程"所涉及的知识点,并给出如何实现这样的存储过程。 首先,分页是数据库查询中的一种优化策略,用于限制每次查询返回的结果数量,从而避免一次性加载大量数据导致的...
标题提到的“通用的SQL server分页存储过程”提供了一种解决方案,可以避免重复编写存储过程,只需调整参数即可满足不同分页需求。 分页存储过程的核心思想是利用`OFFSET`和`FETCH NEXT`这两个SQL Server 2012及更...
根据提供的文件信息,本文将详细解释一种通用的SQL分页存储过程实现方法,该方法能够适应不同的表结构、字段数量,并支持自定义排序字段与筛选条件。 ### SQL 分页存储过程解析 #### 标题说明 标题“sql分页存储...
比较通用的sql分页存储过程存储过程 比较通用的sql分页存储过程存储过程
Sql Server BootStrap Table 分页 通用的Sql Server分页程序,并且符合BootStrap Table 的调用标准.
"SQL通用分页存储过程"就是一种专门用于实现分页查询的存储过程,它可以接收用户输入的参数,灵活地返回指定页码的数据。 首先,我们需要理解分页的基本概念。在数据库查询中,如果一次性获取所有数据可能导致内存...
本文将深入探讨通用的存储过程SQL分页查询语句及其背后的原理。 首先,理解存储过程。存储过程是一组预先编译好的SQL语句,存储在数据库服务器中,可以按需调用执行。它的优点包括提高性能、减少网络流量、增强安全...
### 几款通用的SQL分页存储过程:深入解析与应用 在数据库操作中,分页查询是一项常见的需求,尤其当数据量庞大时,合理的分页可以极大地提高查询效率和用户体验。本文将深入分析两款通用的SQL分页存储过程,分别...
SQL Server 2000下的通用分页存储过程.sql
1.查询返回的表、列名以及排序列没有写死,可以根据需要将这些放到存储过程的输入参数中; 2.适用于所有需要分页的单表或多表联合查询。
### SQL Server 的通用分页显示存储过程 #### 知识点概述 在现代Web应用程序开发中,分页是一项重要的功能,它能够有效地管理和展示大量数据,提升用户体验并优化服务器资源的利用。传统的分页方法,如ADO记录集...
一个通用的sql分页存储过程源代码 数据比较大时此分页存储过程效率相当高
### Oracle通用数据库存储过程代码——高效分页存储过程解析 #### 标题解析 标题“Oracle通用数据库存储过程代码——高效分页存储过程”表明这是一个适用于Oracle数据库的存储过程,主要用于实现高效的分页查询功能...
用sql写的存储过程,功能简单通用,可以支持返回总数