`
backspace
  • 浏览: 137150 次
文章分类
社区版块
存档分类
最新评论

sql server 2005 万能分页存储过程

 
阅读更多

sqlserver2005中的万能分页存储过程。–建立主表临时表

CREATE TABLE #temp
(
rownumber bigint,
orderseqno VARCHAR(36),
goodsname VARCHAR(50),
companyname VARCHAR(100)
)

–建立子表临 时表
CREATE TABLE #detail
(
orderseqno VARCHAR(36),
detailid UNIQUEIDENTIFIER,
unitprice DECIMAL(12,2),
Qty int
)

–插入主表数据到主表临时表
insert into #temp
SELECT oo.rownumber, oo.OrderSeqNO, oo.GoodsName, oo.CompanyName FROM
(SELECT ROW_NUMBER () OVER (ORDER BY oi.createdate DESC) AS rownumber,
oi.OrderSeqNO, oi.GoodsName ,ci.CompanyName
FROM OrderInfo oi INNER JOIN CompanyInfo ci ON oi.CompanyID=ci.CompanyID
WHERE oi.CreateDate<GETDATE()
) AS oo
WHERE rownumber BETWEEN 10 AND 20

–定义游标
DECLARE @temp_cursor CURSOR

–给游标赋值
SET @temp_cursor=CURSOR FOR SELECT #temp.orderseqno,#temp.goodsname FROM #temp

–定义游标循环过程中所需保存的临时数据
DECLARE @orderseqno VARCHAR(36),@goodsname varchar(50)

–打开游标
OPEN @temp_cursor

FETCH NEXT FROM @temp_cursor INTO @orderseqno,@goodsname

–循环游标,查询子表数据,然后插入子表临时表
WHILE @@FETCH_STATUS=0
BEGIN
INSERT INTO #detail
SELECT od.OrderSeqNO,od.OrderDetailID, od.UnitPrice,od.Qty
FROM OrderDetail od
WHERE od.OrderSeqNO=@orderseqno

FETCH NEXT FROM @temp_cursor INTO @orderseqno,@goodsname
END
--by www.jbxue.com

–关闭游标
CLOSE @temp_cursor
DEALLOCATE @temp_cursor

SELECT * FROM #temp
SELECT * FROM #detail

–删除临时表
DROP TABLE #temp
DROP TABLE #detail

以上的T-SQL只在SQL Server 2005上测试成功。

2
3
分享到:
评论
2 楼 vipTi 2013-07-11  
学习一下!
1 楼 bluesky2013 2013-07-10  
不错,赞!!

相关推荐

    SqlServer高效万能分页存储过程

    使用系统游标分页,数据越大越能显示高效

    深入sql server 2005 万能分页存储过程的详解

    在SQL Server 2005中,分页查询...总之,理解并掌握这种“万能分页”存储过程的实现原理,有助于我们在旧版本的SQL Server环境中有效地进行分页查询,同时也可以借鉴其思路,应用到其他数据库系统中,解决类似的问题。

    SQL Server2005通用分页存储过程

    一个通用的万能分页存储过程 很好用 很方便

    万能分页存储过程

    本主题聚焦于“万能分页存储过程”,这是一个专为解决此类问题而设计的数据库存储过程。 分页存储过程通常是在数据库服务器端执行的,它根据特定的参数(如每页大小、当前页码)来获取数据,从而实现分页功能。万能...

    ,sql2005万能分页存储过程

    #### 描述:SQL 2000 万能分页存储过程, SQL 2005 万能分页存储过程 描述部分进一步强调了此存储过程不仅适用于SQL Server 2005,同时也兼容SQL Server 2000版本。这表明该存储过程具有较好的兼容性和适用性。 ####...

    SQL万能分页的存储过程

    对SQL分页的万能存储过程,很全面的分析和描述,请大家支持

    效率极高的万能分页存储过程

    ### 效率极高的万能分页存储过程 在数据库操作中,分页查询是非常常见的需求之一,尤其是在处理大量数据时。本篇文章将详细介绍一个高效且灵活的分页存储过程,该过程能够满足多种场景下的分页需求,并具有较高的...

    SQL 万能分页存储过程

    SQL 万能分页存储过程就是为了满足这一需求而设计的。它能够高效地处理分页查询,并同时提供查询总记录数的功能,对于开发人员来说,是一个非常实用的工具。 分页查询的基本原理是通过LIMIT和OFFSET(在MySQL中)...

    高效万能分页存储过程

    本文将深入探讨一种被称为“高效万能分页存储过程”的技术,它在处理大数据分页查询时具有显著的效率优势。 分页查询的基本原理是通过限制查询结果的数量来实现数据的分块显示。在SQL语句中,通常会使用`LIMIT`...

    分页存储过程

    "万能分页存储过程"的核心思想是通过游标获取指定范围内的数据。这个存储过程可能包含以下几个主要步骤: 1. **参数设置**:存储过程需要接收参数,如每页记录数、当前页数等,这些参数用于确定要返回的数据范围。 ...

    SQL通用存储过程分页,支持多表联合

    【SQL通用存储过程分页】是指在数据库管理中,通过创建一个存储过程来实现对多表数据的分页查询。这种存储过程可以适应多种不同表结构的查询需求,避免为每张表单独编写分页查询的存储过程,提高了开发效率。在本例...

    万能分页代码终极配置 asp.net版本

    这涉及到SQL查询的调整,比如使用`OFFSET...FETCH NEXT`(SQL Server)或`LIMIT...OFFSET`(MySQL)等语法来实现分页查询。 6. 用户交互与性能优化: 为了提供良好的用户体验,分页代码应考虑用户交互的细节,如第...

    JSP 查询 分页

    在Web开发领域,JSP(JavaServer Pages)是一种常见的技术,用于创建动态、交互式的网页。JSP查询分页是Web应用中一个重要的功能,它允许用户以分块的形式查看大量数据,而不是一次性加载所有记录,这提高了用户体验...

    DBHelper 万能类

    - 分页查询:提供分页查询方法,如`GetPagedData(string sql, int pageSize, int currentPage, out int totalCount)`,返回分页结果并计算总记录数。 4. **事务处理**: - 支持事务:DBHelper可能包含`Begin...

    MVC三层+Dapper+分页

    在这个项目中,万能分页功能可能是通过Dapper配合SQL语句实现的。这通常涉及以下步骤: 1. **计算总页数**:通过查询数据库获取总记录数,然后根据每页的记录数来计算总页数。 2. **构建分页查询**:根据当前页码和...

    万能查询—

    6. **多数据库支持**: 作为一个“万能”的查询工具,它应该兼容多种常见的数据库管理系统,如MySQL、Oracle、SQL Server、PostgreSQL等,以适应不同用户的需求。 7. **定制化与扩展**: 高级的"万能查询"工具可能...

Global site tag (gtag.js) - Google Analytics