SQL Serverは - XMLクエリをキャプチャし、それをテーブルに保存しますか?
-
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型のスカラーではない文字列を作成するために、再度、利用TYPEINSERT INTO CampaignArchive(CampaignID, XmlData)
SELECT CampaignID, (
select (really long list of columns)
FROM (all my tables) FOR XML PATH ..., type);
所属していません StackOverflow