作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我尝试将 XML 文件添加到 SQL 2008。
我的 XML:
<ItemList>
<Section Index="0" Name="cat0">
<Item Index="0" Slot="0" />
<Item Index="1" Slot="0" />
</Section>
<Section Index="1" Name="cat1">
<Item Index="33" Slot="0" />
<Item Index="54" Slot="0" />
</Section>
<Section Index="2" Name="cat2">
<Item Index="55" Slot="0" />
<Item Index="78" Slot="0" />
</Section>
</ItemList>
SQL 列:
Name = Section Name,
Cat = Section Index,
Index = Item Index,
Slot = Item Slot.
我的例子:
DECLARE @input XML = 'MY XML file'
SELECT
Name = XCol.value('@Index','varchar(25)'),
Cat = XCol.value('@Name','varchar(25)'),
[Index] = 'Unknown', /* Index from <Item>*/
Slot = 'Unknown' /* Slot from <Item> */
FROM @input.nodes('/ItemList/Section') AS test(XCol)
我不知道如何从“项目”添加值。
非常感谢!
最佳答案
你可以这样做:
select
Name = XCol.value('../@Index','varchar(25)'),
Cat = XCol.value('../@Name','varchar(25)'),
[Index] = XCol.value('@Index','varchar(25)'),
Slot = XCol.value('@Slot','varchar(25)')
from
@input.nodes('/ItemList/Section/Item') AS test(XCol)
关键思想:将数据更深一层,不是/ItemList/Section
,而是/ItemList/Section/Item
。因此,在这种情况下,您可以访问 Item
的属性,也可以通过指定 ../@ 访问父元素(在您的情况下为
Section
)的属性属性名称
关于sql - 如何将 XML 插入 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29894979/
我是一名优秀的程序员,十分优秀!