我表名EC_Model xml字段名是ec_model_xml
xml格式大概是这样的
<root>
<Item Name='c1'>生产者</Item>
</root>
我现在想改变“生产者”这个值 
我用 update EC_Model set ec_model_xml.modify('replace value of (root/Item)[1] with ''生产者1''' ) 
但提示 
“XQuery [EC_Model.EC_Model_XML.modify()]: 'replace value of' 的目标必须是非元数据属性,或者是具有简单类型内容的元素,但找到 'element(Item,xdt:untyped) ?'”  这个错误  在线急等 解决方法

解决方案 »

  1.   

    DECLARE @xml xml;
    SET @xml = '<root> 
    <Item Name="c1">生产者 </Item> 
    <Item Name="c2">liang</Item>
    </root> 'SET @xml.modify('replace value of (/root/Item/text())[1] with "生产者1"')SELECT @xml;/*
    <root>
      <Item Name="c1">生产者1</Item>
      <Item Name="c2">liang</Item>
    </root>
    */
      

  2.   

    DECLARE @xml xml;
    SET @xml = '<root> 
    <Item Name="c1">生产者</Item> 
    <Item Name="c2">liang</Item>
    </root> 'SET @xml.modify('replace value of (/root/Item[@Name="c2"]/text())[1] with "生产者1"')SELECT @xml;/*
    <root>
      <Item Name="c1">生产者</Item>
      <Item Name="c2">生产者1</Item>
    </root>
    */