深入sql server 2005 万能分页存储过程的分析
这篇文章主要为大家详细介绍了深入sql server 2005 万能分页存储过程的分析,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
–建立主表临时表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 #tempSELECT 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.CompanyNameFROM OrderInfo oi INNER JOIN CompanyInfo ci ON oi.CompanyID=ci.CompanyIDWHERE oi.CreateDate<GETDATE()) AS ooWHERE 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=0BEGININSERT INTO #detailSELECT od.OrderSeqNO,od.OrderDetailID, od.UnitPrice,od.QtyFROM OrderDetail odWHERE od.OrderSeqNO=@orderseqno
FETCH NEXT FROM @temp_cursor INTO @orderseqno,@goodsnameEND
–关闭游标CLOSE @temp_cursorDEALLOCATE @temp_cursor
SELECT * FROM #tempSELECT * FROM #detail–删除临时表DROP TABLE #tempDROP TABLE #detail上面的T-SQL只在SQL Server 2005上调试成功。
注:关于深入sql server 2005 万能分页存储过程的分析的内容就先介绍到这里,更多相关文章的可以留意