Sql server 2008 替换XML属性的值

Sql server 2008 替换XML属性的值,sql-server-2008,xquery,Sql Server 2008,Xquery,我试图替换在xml文档中重复的字段ID=29的“可见”属性值。 下面是xml的一个示例: <Types> <Type ID="4"> <Fields> <Field ID="29" Visible="false"/> </Fields> </Type> <Type ID="5"> <Fields>

我试图替换在xml文档中重复的字段ID=29的“可见”属性值。 下面是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语句中更新多个XML节点值,如下所述:

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

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