Je travaille sur la récupération des données en format XML à partir de SQL Server 05 en utilisant FOR XML
Sélection Nested Xml éléments à l'aide de FOR XML - les meilleures pratiques
Quelle est la meilleure pratique pour les éléments de nidification dans mon Xml résultant?
Actuellement, je fais ceci:
Select
(
Select
[Col1] As [Col1],
[Col2] As [Col2]
From [dbo].[NestedTable] As T1
Where T0.[Key] = T1.[Key]
FOR XML PATH('NestedTable'), TYPE
),
[Col1] As [Col1],
[Col2] As [Col2],
From [dbo].[TopLevelTable] As T0
FOR XML PATH('TopLevelTable'), ROOT('TopLevelTableItems')
Cependant, je suis préoccupé par la performance de ce en raison de la requête sous corrélative. Existe-t-il des fonctionnalités de type Grouper par je peux utiliser pour que je puisse faire une jointure interne régulière sur les deux tables et Xml résultant où les nœuds de niveau supérieur sont uniques et possèdent la collection appropriée de nœuds enfants?
Modifier Il semble que je puisse demander l'impossible étant donné l'absence de réponses. Alors peut-être une meilleure question est:
Existe-t-il un bon/meilleur moyen de générer Xml à partir de SQL Server ou devrais-je simplement transférer mon code dans le CLR et générer à partir de là?
Hey Mitch, Yeh J'ai un XSD bien défini sur lequel je valide avant d'utiliser le XML. Le problème que j'ai consiste à obtenir une structure XML imbriquée sans utiliser de sous-requête corrélée. Ai-je manqué quelque chose concernant l'utilisation de schémas XML pour générer mon XML à partir de SQL? –