Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zaktualizować wartość wszystkich atrybutów xml w zmiennej xml za pomocą t-sql?

Możesz podzielić XML na zmienną tabeli, zastąpić każdy węzeł osobno, a następnie połączyć je ponownie.

declare @xml xml = 
'<a abb="122">
  <b></b>
 </a>
 <a abb="344">
  <b></b>
 </a>'

declare @T table (XMLCol xml)
insert into @T
select
  a.query('.')
from @xml.nodes('a') a(a)

update @T set
  XMLCol.modify('replace value of (/a/@abb)[1] with 888')

set @xml = (select XMLCol as [*]
            from @T
            for xml path(''))



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmień istniejącą kolumnę na kolumnę obliczoną w SQL Server (przykład T-SQL)

  2. Napisz liczbę z dwoma miejscami po przecinku SQL Server

  3. Uzyskaj tylko datę z datetime sql bez konwersji na varchar, abym mógł ją posortować w programie Excel

  4. Procedura składowana EXEC vs różnica sp_executesql?

  5. wstawianie elementów listbox do bazy danych serwera sql