を使用して、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 にシフトアウトしてそこから生成する必要がありますか?