sql >> Databasteknik >  >> RDS >> Sqlserver

Uppdatering av Xml-attribut med nya värden i en SQL Server 2008-tabell

Från de tidiga versionerna av din fråga ser det ut som att din XML faktiskt finns på olika rader i en tabell. Om så är fallet kan du använda detta.

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

Arbetsexempel med en tabellvariabel.

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 


  1. Hur man förvandlar en json-array till rader i postgres

  2. hur man tar reda på antalet dagar i månaden i mysql

  3. Hur man väljer för ej använda koder i detta exempel

  4. Para ihop skicka och ta emot datarader i SQL