Я работаю над извлечением данных в формате XML из SQL Server 05, используя FOR XML
Какова наилучшая практика для вложения элементов в полученный XML-файл?
В настоящее время я делаю это:
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')
Однако меня беспокоит производительность из-за коррелированного подзапроса. Есть ли функциональность типа «группа по», которую я могу использовать, чтобы я мог выполнять регулярное внутреннее объединение для двух таблиц и получить в результате XML, где узлы верхнего уровня уникальны и имеют соответствующую коллекцию дочерних узлов?
Редактировать
Кажется, что я могу просить невозможного, учитывая отсутствие ответов. Так что, возможно, лучший вопрос:
Есть ли хороший / лучший способ генерировать Xml из SQL Server или мне просто перенести мой код в CLR и генерировать оттуда?