我正在使用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')
但是,由于相关的子查询,我担心这种性能。是否有可以使用的Group By类型功能,以便我可以在两个表上进行常规内部连接,并生成Xml,其中顶级节点是唯一的并且具有适当的子节点集合?
修改 由于缺乏回应,似乎我可能会要求不可能的事情。所以也许更好的问题是:
是否有一种好的/更好的方法可以从SQL Server生成Xml,或者我应该将代码转移到CLR并从那里生成?
答案 0 :(得分:0)
如果可能的话,应该避免相关的子查询(如果保证表格很小,则不是很重要)。
也许您应该首先定义XML模式(可能是某些东西正在消耗它并期望某种格式)。