Output in XML in SQL Server

Mattepuffo's logo
Output in XML in SQL Server

Output in XML in SQL Server

Ho scoperto che SQL Server ci da la possibilità di trasformare l'output di una query direttamente in XML.

Abbiamo diverse possibilità, di cui noi vedremo quelle principali:

  • AUTO -> ogni colonna è un attributo
  • PATH -> ogni record è un elemento, ed ogni colonna è un elemento interno

Cominciamo col primo esempio:

SELECT * FROM Interventi FOR XML AUTO

E l'output sarà una cosa del genere:

<Interventi IdIntervento="1" TipoIntervento="MANUTENZIONE" Data="2020-07-08T08:00:00" />
<Interventi IdIntervento="2" TipoIntervento="MANUTENZIONE" Data="2020-05-12T11:00:00" />

Io preferisco PATH:

SELECT * FROM Interventi FOR XML PATH

E qui sotto potete vedere il motivo:

<row>
  <IdIntervento>1</IdIntervento>
  <TipoIntervento>MANUTENZIONE</TipoIntervento>
  <Data>2020-07-08T08:00:00</Data>
</row>
<row>
  <IdIntervento>2</IdIntervento>
  <TipoIntervento>MANUTENZIONE</TipoIntervento>
  <Data>2020-05-12T11:00:00</Data>
</row>

Lo trovo più ordinato e leggibile.

Possiamo anche dare un nome ad ogni elemento:

SELECT * FROM Interventi FOR XML PATH ('Intervento')
<Intervento>
  <IdIntervento>1</IdIntervento>
  <TipoIntervento>MANUTENZIONE</TipoIntervento>
  <Data>2020-07-08T08:00:00</Data>
</Intervento>
<Intervento>
  <IdIntervento>2</IdIntervento>
  <TipoIntervento>MANUTENZIONE</TipoIntervento>
  <Data>2020-05-12T11:00:00</Data>
</Intervento>

Enjoy!


Condividi

Commentami!