Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Dans SQLServer 2012 TSQL, quelle est la différence entre l'utilisation de XML RAW, XML AUTO et XML PATH

XML RAW :chaque ligne du jeu de résultats est considérée comme un élément, vos colonnes étant les attributs.

Exemple :

USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name 
FROM DBO.T_User
FOR XML RAW;

SORTIE :

<row id="7801020202083" First_Name="John" Surname="Doe" />
<row id="9812150201082" First_Name="Samantha" Surname="Hill" />

XML AUTO :les noms de table sont vos éléments

Exemple :

USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name 
FROM DBO.T_User
FOR XML AUTO;

SORTIE :

<DBO.T_USER id="7801020202083" First_Name="John" Surname="Doe" />
<DBO.T_USER  id="7801020202083" First_Name="John" Surname="Doe" />

Chemin XML :les colonnes de la table sont transmises en tant qu'éléments enfants.

Exemple :

USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name 
FROM DBO.T_User
FOR XML PATH;

SORTIE :

<row>
  <id>7801020202083</id>
  <First_Name>John</First_Name>
  <Surname>Doe</Surname>
</row>
<row>
  <id>7801020202083</id>
  <First_Name>John</First_Name>
  <Surname>Doe</Surname>
</row>

Veuillez également consulter ce blog https://www.simple-talk.com/sql/learn-sql-server/using-the-for-xml-clause-to-return-query-results- as-xml/ pour une meilleure ventilation.