Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Si le chemin spécifié comme nom de colonne est « data() », la valeur est traitée comme une valeur atomique dans le code XML généré. Un caractère d’espace est ajouté au code XML si l’élément suivant de la sérialisation est également une valeur atomique. Cela est utile lorsque vous créez des valeurs d’élément et d’attribut typés de liste. La requête suivante récupère l’ID, le nom et la liste des produits de ce modèle de produit.
USE AdventureWorks2012;
GO
SELECT ProductModelID AS "@ProductModelID",
Name AS "@ProductModelName",
(SELECT ProductID AS "data()"
FROM Production.Product
WHERE Production.Product.ProductModelID =
Production.ProductModel.ProductModelID
FOR XML PATH ('')) AS "@ProductIDs"
FROM Production.ProductModel
WHERE ProductModelID= 7
FOR XML PATH('ProductModelData');
Le SELECT imbriqué récupère une liste d’ID de produit. Il spécifie « data() » comme nom de colonne pour les ID de produit. Étant donné que le mode PATH spécifie une chaîne vide pour le nom de l’élément de ligne, aucun élément de ligne n’est généré. Au lieu de cela, les valeurs sont retournées comme affectées à un attribut ProductIDs de l’élément <ProductModelData> de ligne du SELECT parent. Voici le résultat obtenu :
<ProductModelData ProductModelID="7"
ProductModelName="HL Touring Frame"
ProductIDs="885 887 888 889 890 891 892 893" />