sql-server - 将子节点从 SQL xml 变量插入到另一个 xml 变量中

标签 sql-server xquery nodes

我有两个 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/

相关文章:

c# - 使用解析的字符串值过滤 MS SQL 2008 服务器中的日期时间列

sql-server - MSSQL DB 模式和数据以及所有(关系、seq、fk、pk 等)cli 备份工具

sql-server - 使用 SQL Server 2005 的 XQuery 选择具有特定属性值或缺少该属性的所有节点

xml - 如何使用 XQuery 打印 "<"和 ">"?

algorithm - 单向链表尾部

.net - Umbraco 虚拟节点

sql - 坚持一个有点复杂的 SQL 查询

sql-server - SQL Server 中带 NULL 的 Count 函数的属性

java - Saxon 免费版本中的 XQuery

d3.js - 通过d3中的数据属性创建节点集群的焦点?