源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-08-10 12:25 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:深入sql server 2005 万能分页存储过程的详解
[b]–建立主表临时表 [/b]CREATE TABLE #temp ( rownumber bigint, orderseqno VARCHAR(36), goodsname VARCHAR(50), companyname VARCHAR(100) ) [b] –建立子表临 时表 [/b]CREATE TABLE #detail ( orderseqno VARCHAR(36), detailid UNIQUEIDENTIFIER, unitprice DECIMAL(12,2), Qty int ) [b] –插入主表数据到主表临时表 [/b]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 [b]–定义游标 [/b]DECLARE @temp_cursor CURSOR [b] –给游标赋值 [/b]SET @temp_cursor=CURSOR FOR SELECT #temp.orderseqno,#temp.goodsname FROM #temp [b]–定义游标循环过程中所需保存的临时数据 [/b]DECLARE @orderseqno VARCHAR(36),@goodsname varchar(50) [b]–打开游标 [/b]OPEN @temp_cursor FETCH NEXT FROM @temp_cursor INTO @orderseqno,@goodsname [b] –循环游标,查询子表数据,然后插入子表临时表 [/b]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 [b]–关闭游标 [/b]CLOSE @temp_cursor DEALLOCATE @temp_cursor SELECT * FROM #temp SELECT * FROM #detail [b] –删除临时表 [/b]DROP TABLE #temp DROP TABLE #detail [b] 上面的T-SQL只在SQL Server 2005上调试成功。 [/b]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部