一次更新sql server xml数据字段上的多个属性

Mik*_*e D 5 xml sql-server

是否可以在一次更新中修改单个节点上的多个属性?

我有类似的东西:

<ENTITY NAME="entity1">
    <ATTR ID="attr1" CAPTION="Attributes to Change" SIZE="100" WIDTH="100"></ATTR>
</ENTITY>
Run Code Online (Sandbox Code Playgroud)

我已经能够使用三个单独的更新来修改 CAPTION、SIZE 和 WIDTH 属性,但我一直徒劳地寻找某种方法将它们组合成一个更新。是否可以?

我使用过的更新示例:

UPDATE    t
SET       [column_name].modify('replace value of (/ENTITY/ATTR/@CAPTION)[1] with "New Attribute Caption"')
FROM      table t

UPDATE    t
SET       [column_name].modify('replace value of (/ENTITY/ATTR/@SIZE)[1] with "200"')
FROM      table t

UPDATE    t
SET       [column_name].modify('replace value of (/ENTITY/ATTR/@WIDTH)[1] with "200"')
FROM      table t
Run Code Online (Sandbox Code Playgroud)

Mik*_*son 4

不,这是不可能的。

来自(XML DML) 的替换值

表达式1
标识其值要更新的节点。它必须仅标识单个节点。也就是说,Expression1 必须是静态单例。