sql修改XML节点

时间:2014-12-26 06:27:29

标签: sql xml sql-server-2008

我正在尝试修改表格中的xml属性:

XML:

 <root>
      <object name="111">
        <fields>
          <field name="1">False</ofield>
          <field name="VIN">123</field>
         </fields>
     </object>
    </root>


UPDATE wftable
SET XML.modify('replace value of 
               (root/object[@name="111"]/fields/field/@name[.="VIN"])[1] 
               with "testNumber"')
WHERE id = 20889436

但我得到了结果

<field name="testNumber">123</field>

实际上我只想像这样更新xml节点:

<field name="VIN">testNumber</field>

如何修改我的UPDATE查询?

1 个答案:

答案 0 :(得分:1)

您需要将字段的text()节点指定为要更新的节点。

replace value of 
(root/object[@name="111"]/fields/field[@name="VIN"]/text())[1] 
with "testNumber"