使用SQL

时间:2016-08-15 02:38:44

标签: sql sql-server xml tsql

我正在寻找一种在特定位置插入特定XML节点的方法。以下是示例:

<Car>
     <Brand>Toyota</Brand>
     <Color>Red</Color>
     <Price>10000</Color>
</Car>

如果我想要在<Year>2012</Year><Color>节点之间插入节点<Price>,我该怎么办?

请注意,在我当前的方案中,替换整个XML文档不是一个选项。感谢

1 个答案:

答案 0 :(得分:3)

您可以使用XQuery insert ... after ...语句在Year之后插入Color元素:

declare @xml XML = '<Car>
     <Brand>Toyota</Brand>
     <Color>Red</Color>
     <Price>10000</Price>
</Car>'

SET @xml.modify('
    insert <Year>2012</Year>
    after (//Color)[1]
')

SELECT @xml

输出

<Car>
  <Brand>Toyota</Brand>
  <Color>Red</Color>
  <Year>2012</Year>
  <Price>10000</Price>
</Car>