Formatage de la sortie XML dans SQL Server 2005 : Un guide pour FOR XML EXPLICIT
Lorsque vous travaillez avec SQL Server, vous pouvez rencontrer des scénarios où vous devez transformer les résultats de votre requête en format XML. Un défi courant se pose lorsque vous essayez d’atteindre une structure XML spécifique. Par exemple, vous devrez peut-être transmettre la sortie à une autre procédure stockée tout en maintenant un certain format. Dans cet article de blog, nous allons voir comment formater correctement la sortie XML dans SQL Server 2005 en utilisant la clause FOR XML EXPLICIT
.
Le problème : Structure XML souhaitée
Commençons par analyser le problème. Considérons une table avec une structure comme illustrée ci-dessous :
LocationID | AccountNumber |
---|---|
long-guid-here | 12345 |
long-guid-here | 54321 |
Pour passer la sortie en tant qu’XML à une autre procédure stockée, vous avez besoin que le format XML ressemble à ceci :
<root>
<clientID>12345</clientID>
<clientID>54321</clientID>
</root>
Cependant, votre tentative initiale a donné ce résultat :
<root clientID="10705"/>
Clairement, vous n’obtenez pas la sortie souhaitée. Résolvons cela.
La solution : Décomposition de la requête SQL
Pour obtenir le format XML souhaité, vous devez ajuster votre requête SQL. Voici un guide étape par étape pour atteindre la sortie attendue.
Étape 1 : Modifier la requête SQL
Votre requête SQL initiale nécessite quelques ajustements. Remplacez-la par l’instruction suivante :
SELECT
1 AS Tag,
0 AS Parent,
AccountNumber AS [Root!1!AccountNumber!element]
FROM
Location.LocationMDAccount
WHERE
LocationID = 'long-guid-here'
FOR XML EXPLICIT
Étape 2 : Comprendre les composants de la requête
- Instruction SELECT : Vous commencez par sélectionner les données souhaitées, dans ce cas,
AccountNumber
. - Tag et Parent : Les valeurs
Tag
etParent
sont essentielles pour structurer correctement la hiérarchie XML. Ici,1
et0
sont utilisés pour signifier le niveau racine. - Spécification du format XML : Le
AS [Root!1!AccountNumber!element]
est critique. Il vise à générer des éléments XML pour chaqueAccountNumber
.
Étape 3 : Exécuter la requête
Exécutez la requête SQL modifiée contre votre base de données SQL Server. Si tout se passe comme prévu, vous devriez maintenant recevoir la sortie XML structurée correctement, ressemblant à ceci :
<root>
<AccountNumber>12345</AccountNumber>
<AccountNumber>54321</AccountNumber>
</root>
Conclusion
Obtenir le format XML souhaité peut être simple avec les bonnes requêtes SQL. La clause FOR XML EXPLICIT
dans SQL Server 2005 permet un contrôle détaillé sur la façon dont vos données sont transformées en XML. En ajustant votre requête pour inclure les composants de Tag
, Parent
et de formatage corrects, vous pouvez formater avec succès votre sortie XML pour répondre à vos besoins.
Si vous suivez les étapes décrites dans cet article de blog, vous devriez désormais être en mesure de formater votre sortie SQL Server 2005 dans la structure XML dont vous avez besoin. Bonnes requêtes !