如何在SQL表格中替换XMLColumn中的值

时间:2016-10-19 16:20:12

标签: sql xml

我有这个XML,我希望将节点'txtqtyremaining'中的值97更改为新值。我该怎么做?

我不知道如何选择更正节点以及如何更改该值。

    <genxml>
  <files />
  <hidden />
  <textbox>
    <txtproductref>SKU</txtproductref>
  </textbox>
  <dropdownlist />
  <checkboxlist />
  <radiobuttonlist />
  <models>
    <genxml>
      <files />
      <textbox>
        <availabledate datatype="date" />
        <txtbarcode>BAR1234</txtbarcode>
        <txtqtyremaining datatype="double">97</txtqtyremaining>
      </textbox>

1 个答案:

答案 0 :(得分:1)

SET @XML.modify('replace value of (/genxml/models/genxml/textbox/txtqtyremaining[1]/text())[1] with "999.99"') 
Select @XML

或者您可以使用简单的Replace()

Set @XML = Replace(cast(@XML as varchar(max)),'>97</txtqtyremaining>','>999.999</txtqtyremaining>')
Select @XML

两者都会返回

<genxml>
  <files />
  <hidden />
  <textbox>
    <txtproductref>SKU</txtproductref>
  </textbox>
  <dropdownlist />
  <checkboxlist />
  <radiobuttonlist />
  <models>
    <genxml>
      <files />
      <textbox>
        <availabledate datatype="date" />
        <txtbarcode>BAR1234</txtbarcode>
        <txtqtyremaining datatype="double">999.999</txtqtyremaining>
      </textbox>
    </genxml>
  </models>
</genxml>