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')   

ただし、サブクエリが相関しているため、これのパフォーマンスが心配です。2 つのテーブルで通常の内部結合を実行し、最上位ノードが一意であり、子ノードの適切なコレクションを持つ Xml を生成するために使用できる Group By タイプの機能はありますか?

編集 回答がないため、不可能なことを求めているようです。したがって、おそらくより良い質問は次のとおりです。

SQL Server から Xml を生成する良い/より良い方法はありますか?それとも、コードを CLR にシフトアウトしてそこから生成する必要がありますか?

4

1 に答える 1

0

相関するサブクエリは、可能であれば回避する必要があります(テーブルが小さいことが保証されている場合は、大したことではありません)。

おそらく、最初にXMLスキーマを定義する必要があります(おそらく、何かがこれを消費していて、特定の形式を期待しています)。

于 2010-02-19T07:50:12.470 に答える