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 et Parent sont essentielles pour structurer correctement la hiérarchie XML. Ici, 1 et 0 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 chaque AccountNumber.

É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 !