栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 数据库 > MySQL > MsSql

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

MsSql 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

–建立主表临时表
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) 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

–关闭游标
CLOSE @temp_cursor
DEALLOCATE @temp_cursor

SELECt * FROM #temp
SELECt * FROM #detail

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

上面的T-SQL只在SQL Server 2005上调试成功。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/169801.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号