Cómo modificar múltiples nodos usando SQL XQuery en MS SQL 2005
En una tabla tengo lo siguiente.
ParameterID (int) ParameterValue (XML)
------------ --------------
1 <USER><User ID="1" Name="Billy"/><USER>
<USER><User ID="2" Name="Billy"/><USER>
<MANAGER><User ID="1" Name="Billy"/><MANAGER>
2 <USER><User ID="1" Name="John"/><USER>
<USER><User ID="2" Name="Billy"/><USER>
<MANAGER><User ID="1" Name="Billy"/><MANAGER>
3 <USER><User ID="1" Name="David"/><USER>
<USER><User ID="2" Name="Billy"/><USER>
<MANAGER><User ID="1" Name="Billy"/><MANAGER>
¿Cómo modifico todas las instancias de Billy para que sean Peter?
Lo intenté
-- Update the table
UPDATE @tbXML
SET ParameterValue.modify('replace value of (//User/@Name[.="Billy"])[1] with "Peter"')
Pero solo el primer Billy en la fila fue actualizado.
Ejecutando la actualización varias veces:
For Row 1:
1st Time = 1 <USER><User ID="1" Name="Peter"/><USER> <USER><User ID="2" Name="Billy"/><USER> <MANAGER><User ID="1" Name="Billy"/><MANAGER>
2nd Time 1 <USER><User ID="1" Name="Peter"/><USER> <USER><User ID="2" Name="Peter"/><USER> <MANAGER><User ID="1" Name="Billy"/><MANAGER>
3rd Time 1 <USER><User ID="1" Name="Peter"/><USER> <USER><User ID="2" Name="Peter"/><USER> <MANAGER><User ID="1" Name="Peter"/><MANAGER>