Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Aggiornamento degli attributi XML con nuovi valori in una tabella di SQL Server 2008

Dalle prime versioni della tua domanda sembra che il tuo XML sia effettivamente su righe diverse in una tabella. Se questo è il caso, puoi usarlo.

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

Esempio di lavoro utilizzando una variabile di tabella.

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