Noms de colonnes avec le chemin d’accès spécifié en tant que données()
S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Si le chemin d’accès 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 espace est ajouté au document XML si l'élément suivant dans 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 extrait l'ID de modèle, le nom et la liste des produits pour le modèle concerné.
USE AdventureWorks2022;
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');
L'instruction SELECT imbriquée extrait une liste d'ID de produit. Elle 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é. À la place, les valeurs sont renvoyées comme étant affectées à un attribut ProductIDs de l’élément de ligne <ProductModelData>
de l’instruction SELECT parente. Voici le résultat obtenu :
<ProductModelData
ProductModelID = "7"
ProductModelName="HL Touring Frame"
ProductIDs="885 887 888 889 890 891 892 893"
/>
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour