我有两个 xml 变量:
@main xml = '<root></root>'
@insert xml = '<rows><row>SomeRow</row></rows>'
我想插入 @insert rows 的子节点,这样我就可以得到如下所示的结果 XML:
<root>
<row>SomeRow</row>
</root>
我很清楚从 sql 变量插入 xml(使用 sql:variable("@insert")),但这会插入整个 XML,包括根元素。我想要的是只将根元素的子节点插入@insert变量中。
非常感谢。
最佳答案
一种方法是更改需要插入另一个 xml 的变量中的数据:
DECLARE @main xml = '<root></root>',
@insert xml = '<rows><row>SomeRow</row></rows>'
SELECT @insert = @insert.query('/rows/row')
SET @main.modify('
insert sql:variable("@insert")
into (/root)[1] ')
SELECT @main
输出:
<root>
<row>SomeRow</row>
</root>
关于sql-server - 将子节点从 SQL xml 变量插入到另一个 xml 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38521514/