T-SQL移动XML节点,不插入/删除

时间:2018-04-17 15:33:34

标签: xml sql-server-2008 tsql xpath xquery

使用T-SQL,是否可以使用单个指令移动XML节点,而不必执行insert后跟delete

示例XML ...

DECLARE @XML XML = '<data><a></a><b></b></data>'

所需的XML ......

DECLARE @XML XML = '<data><a><b></b></a></data>'

两步解决方案......

SET @XML.modify('insert (/data/b) as last into (/data/a)[1]')
SET @XML.modify('delete (/data/b)')

是否有一步到位的解决方案?

1 个答案:

答案 0 :(得分:2)

当你让我把我的评论作为答案时:

不,没有......

.modify()将允许每次调用一次更改。

根据实际的XML可以

  1. 切碎并重建它或
  2. 尝试一些花哨XQuery(但TSQL的XQuery对构造的XML非常有限......)
  3. 两者都不会一般地运作。