Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Mise à jour des attributs Xml avec de nouvelles valeurs dans une table SQL Server 2008

Depuis les premières versions de votre question, il semble que votre XML se trouve en fait sur différentes lignes d'un tableau. Si tel est le cas, vous pouvez l'utiliser.

update YourTable set
  XMLText.modify('replace value of (/Identification/@Age)[1] with "40"')
where XMLText.value('(/Identification/@Age)[1]', 'int') = 30

Exemple de travail utilisant une variable de table.

declare @T table(XMLText xml)

insert into @T values('<Identification Name="John"  Family="Brown"   Age="30" />')
insert into @T values('<Identification Name="Smith" Family="Johnson" Age="35" />') 
insert into @T values('<Identification Name="Jessy" Family="Albert"  Age="60" />')
insert into @T values('<Identification Name="Mike"  Family="Brown"   Age="23" />')
insert into @T values('<Identification Name="Sarah" Family="Johnson" Age="30" />')

update @T set
  XMLText.modify('replace value of (/Identification/@Age)[1] with "40"')
where XMLText.value('(/Identification/@Age)[1]', 'int') = 30

select *
from @T