Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Fügen Sie der XML-Spalte ein Attribut aus einer anderen Spalte in derselben/einer anderen Tabelle hinzu

Eine Version, die eine temporäre Tabelle verwendet, um die Attribute zum XML hinzuzufügen.

select OrderID,
       OrderCode,
       DateShipped,
       ShipmentXML
into #Order
from [Order]

update #Order
set ShipmentXML.modify
  ('insert attribute DateShipped {sql:column("DateShipped")} 
    into (/Order/Item)[1]')

update O
set ShipmentXML.modify
  ('insert attribute TrackingNumber {sql:column("T.TrackingNumber")} 
    into (/Order/Item)[1]')
from #Order as O
  inner join Tracking as T
    on O.OrderCode = T.OrderCode

select OrderID,
       OrderCode,
       ShipmentXML
from #Order

drop table #Order