Exemple : Spécification de la directive ELEMENT
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Cette directive extrait des informations sur les employés et génère des données XML centrées sur l'élément, comme illustré par le code suivant :
<Employee EmpID=...>
<Name>
<FName>...</FName>
<LName>...</LName>
</Name>
</Employee>
La requête demeure la même, à l'exception du fait que vous ajoutez la directive ELEMENT
dans les noms de colonnes. Par conséquent, au lieu d'attributs, les éléments enfants <FName>
et <LName>
sont ajoutés à l'élément <Name>
. Étant donné que la colonne Employee!1!EmpID
ne spécifie pas la directive ELEMENT
, EmpID
est ajouté en tant qu'attribut de l'élément <Employee>
.
SELECT 1 as Tag,
NULL as Parent,
E.BusinessEntityID as [Employee!1!EmpID],
NULL as [Name!2!FName!ELEMENT],
NULL as [Name!2!LName!ELEMENT]
FROM HumanResources.Employee AS E
INNER JOIN Person.Person AS P
ON E.BusinessEntityID = P.BusinessEntityID
UNION ALL
SELECT 2 as Tag,
1 as Parent,
E.BusinessEntityID,
FirstName,
LastName
FROM HumanResources.Employee AS E
INNER JOIN Person.Person AS P
ON E.BusinessEntityID = P.BusinessEntityID
ORDER BY [Employee!1!EmpID],[Name!2!FName!ELEMENT]
FOR XML EXPLICIT;
Le résultat partiel est le suivant.
<Employee EmpID="1">
<Name>
<FName>Ken</FName>
<LName>Sánchez</LName>
</Name>
</Employee>
<Employee EmpID="2">
<Name>
<FName>Terri</FName>
<LName>Duffy</LName>
</Name>
</Employee>
...