Я работаю над получением данных в формате 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 и генерировать оттуда?