替换XML属性的值

时间:2014-01-28 10:05:45

标签: sql-server-2008 xquery

我正在尝试替换在xml文档中重复的Field ID = 29的“Visible”属性值。 下面是一个xml的例子:

<Types>
    <Type ID="4">
        <Fields>
            <Field ID="29" Visible="false"/>
        </Fields>
    </Type>
    <Type ID="5">
        <Fields>
            <Field ID="29" Visible="true"/>
        </Fields>
    </Type>
    <Type ID="6">
        <Fields>
            <Field ID="29" Visible="false"/>
        </Fields>
    </Type>
</Types>

我尝试了以下但没有成功:

update SF
set [Static_Form_Properties].modify('replace value of (/Field[@ID=29]/@Visible)[1] with ("true")')
from wf_workflow_step_form SF

任何帮助都会受到高度赞赏。 感谢

1 个答案:

答案 0 :(得分:0)

似乎您无法在单个UPDATE语句中更新多个XML节点值,如下所述:How to modify multiple nodes using SQL XQuery in MS SQL 2005

在上面的查询中,我认为只会找到找到的第一个实例。