以下のこの声明:
SELECT
....
FROM
....
WHERE
....
FOR XML PATH('Booking'), ROOT('doc')
これにより、すべてのレコードが 1 つの XML 文字列で返されます。各レコードに独自の XML 文字列が必要です。これは理にかなっていますか?出来ますか。これを行うのは理にかなっていますか?
Microsoft SQL Server 2008 を使用しています
以下のこの声明:
SELECT
....
FROM
....
WHERE
....
FOR XML PATH('Booking'), ROOT('doc')
これにより、すべてのレコードが 1 つの XML 文字列で返されます。各レコードに独自の XML 文字列が必要です。これは理にかなっていますか?出来ますか。これを行うのは理にかなっていますか?
Microsoft SQL Server 2008 を使用しています
私の理解が正しければ、各行で個別の XML ドキュメントを生成する必要があります (「XML 文字列」などはありません)。FOR XML を介して各行を実行する必要があります。たとえば、テーブルから各行を取得し、CROSS APPLY演算子を使用して単一の行を射影しFOR XML TYPEます。結合には行テーブル値コンストラクターを使用します。例えば。master..spt_values を使用:
select t.*
from master..spt_values s
cross apply (
select s.*
from (values (1) ) as t(c)
for xml path('Boookin'), root('Doc'), type) as t(x)
次のような構造を持つ、行ごとに 1 つの XML ドキュメントを返します。
<Doc>
<Boookin>
<name>rpc</name>
<number>1</number>
<type>A </type>
<status>0</status>
</Boookin>
</Doc>
master..spt_values を選択したテーブルに置き換えます。