【发布时间】:2019-04-10 07:18:48
【问题描述】:
我想在存储过程中将 XML 数据插入到 sql 表中。我想插入 CNAME 和 AMOUNT 值。如何使用下面的 xml 实现这一点?
<ENTITY>
<CNAME>
<NAME>FGGFGFGF</NAME>
</CNAME>
<AMOUNT>
<AMOUNT1></AMOUNT1>
<AMOUNT2>67052549.33</AMOUNT2>
</AMOUNT>
<CNAME>
<NAME>FGGFGFGF</NAME>
</CNAME>
<AMOUNT>
<AMOUNT1></AMOUNT1>
<AMOUNT2>67052549.33</AMOUNT2>
</AMOUNT>
</ENTITY>
INSERT INTO Table1(NAME,AMOUNT1, AMOUNT2) SELECT t.c.value('(NAME)[1]', 'varchar(50)') AS NAME, d.c.value('(AMOUNT1)
[1]', 'varchar(50)') AS AMOUNT1, d.c.value('(AMOUNT2)[1]','varchar(50)') as
AMOUNT2 FROM @xmlData.nodes('/ENTITY') m(c) CROSS APPLY m.c.nodes(N'CNAME')
t(c) CROSS APPLY m.c.nodes(N'AMOUNT') d(c)
【问题讨论】:
-
不一样,我试过了,就像我使用了两个 CROSS APPLY 函数然后它循环了两次......
-
如果你能把你的 sql 查询放出来就好了,这样它就可以更清楚地说明它到底有什么问题。
-
我用查询编辑器更新了
-
使用 SQL Server 很难处理 XML。我发现使用另一种编程语言来读取 xml 并存储到数据库中更容易做到。
标签: sql-server xml