思达新闻资讯--SQL如何循环节点读取xml
     新闻资讯 > SQL如何循环节点读取xml
                                                                                      
     【发表日期】:2007年7月20日   【出处】:整理于思达网校    【作者】:整理于思达网校   【阅读】:


问题:
一个XML文件
<Buy BuyTime="2007-2-18">
<BuyDetail BuyDetailID=1 BuyDetailName="物品1" />
<BuyDetail BuyDetailID=2 BuyDetailName="物品1" />
</Buy>
请问如何实现一条一条子节点遍历Buy/BuyDetail的属性。
然后逐行更新BuyDetail表中BuyDetailID等于XML相对应的BuyDetailID属性的记录呢?


回答:
declare @a int
declare @doc1 nvarchar(1000)
set @doc1=''
set @doc1='
<Buy BuyTime="2007-2-18">
<BuyDetail BuyDetailID="1" BuyDetailName="物品1" />
<BuyDetail BuyDetailID="2" BuyDetailName="物品1" />
</Buy>
'
exec sp_xml_preparedocument @a OUTPUT, @doc1

SELECT    * into #a
FROM       OPENXML (@a, 'Buy/BuyDetail',1)
WITH (BuyDetailID  varchar(10),
BuyDetailName varchar(20))

-- create table BuyDetail( BuyDetailID int,BuyDetailName  varchar(100))
-- insert into BuyDetail select 1,'222'
-- union all select 2,'ccc'

update BuyDetail set BuyDetailName=a.BuyDetailName from  #a as a,BuyDetail as b
 where a.BuyDetailID=b.BuyDetailID

drop table #a

咨讯评论
相关连接
 
网校预告
联系方式
 免费咨询电话:1169865432

 电 话:023-65472523

 课程咨询:edu@staredu.net
 联系人:李老师 王老师
文章搜索: