首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL怎么循环节点 读取 xml

2012-02-14 
SQL如何循环节点 读取 xml一个XML文件BuyBuyTime 2007-2-18 BuyDetailBuyDetailID1BuyDetailName

SQL如何循环节点 读取 xml
一个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

热点排行