2

我正在使用从 SQL Server 05 中检索 Xml 格式的数据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 并从那里生成?

4

1 回答 1

0

如果可能的话,应该避免相关的子查询(如果表保证很小,这没什么大不了的)。

或许您应该首先定义 XML 模式(大概有什么东西正在使用它并期望某种格式)。

于 2010-02-19T07:50:12.470 回答