SQL Serverは - XMLクエリをキャプチャし、それをテーブルに保存しますか?

StackOverflow https://stackoverflow.com/questions/1381909

  •  21-09-2019
  •  | 
  •  

質問

私は、XMLの1行を生成します(大規模な)クエリを実行したいと思います。このXMLは、リレーショナル・データの価値は約12のテーブルを表します。私は、トップレベルのテーブルから行を「削除」するとき私は、アーカイブテーブルに保存し、マークし、最後にすべての子テーブルのデータを削除し、「キャプチャ」(XMLで)その時点のデータの状態を希望「isDeleted = 1」として、トップレベルのテーブル/行。私たちは、 にできないことを親テーブルのオフぶら下がって他のデータを持っているが削除されると、トップテーブルとの関係を失うことはできません。

私はXMLのほとんどが出てきましたが - ここ私のポストを参照してくださいするワームの缶でます。

さて、どのように私は?アーカイブテーブルにあることをキャプチャすることができます。

CREATE TABLE CampaignArchive(CampaignID int, XmlData XML)

INSERT INTO CampaignArchive(CampaignID, XmlData)
SELECT CampaignID, (really long list of columns) FROM (all my tables) FOR XML PATH ...

このだけでは動作しません。 :)

任意の提案ですか?

TIA

役に立ちましたか?

解決

あなたは、列XMLDATAに入る1つのスカラーにすべてのことXMLの作成をラップするサブクエリを必要としています。

:XML型のスカラーではない文字列を作成するために、再度、利用TYPE
INSERT INTO CampaignArchive(CampaignID, XmlData)
SELECT CampaignID, (
 select (really long list of columns) 
 FROM (all my tables) FOR XML PATH ..., type);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top