【发布时间】:2012-07-12 15:06:51
【问题描述】:
我正在尝试将 XML 数据加载到 SQL Server 表中。
XML 文件是:
<root>
<Company ID="183">
<User UserName="Kim" />
<User UserName = "Joe" />
</Company>
<Company ID="123">
<User UserName="George" />
<User UserName = "Sal" />
</Company>
</root>
我想要一个包含公司 ID 和用户名的用户名表。 对于这个例子:
ID UserName
--- --------
183 Kim
183 Joe
123 George
123 Sal
我尝试了一些方法,例如遍历每个公司的所有用户名,但这非常复杂,尤其是当我有超过 2 层来适应此解决方案时。
我尝试的另一件事是:
SELECT
t.c.query('./UserName').value('.','varchar(20)') AS A ,
(
SELECT
t1.c1.value('@ID', 'varchar(10)')
FROM @x.nodes('/root/Company')AS t1(c1)
)
FROM @x.nodes('/root/Company/User')AS t(c)
但我收到一个错误,即子查询的值超过 1 个。
有什么建议吗? 谢谢!
【问题讨论】:
标签: sql-server xml xquery bulkinsert