私が次の状況にあるとしましょう(デモンストレーション用)。単純なテーブルの内容はXML値に変換され、Service Brokerを介して別のSQLサーバーに送信され、そこで結果がSELECT
非XML形式(つまり、通常の単純なデータベーステーブル)に格納されます。やってみよう:
CREATE TABLE tab (a int, b int, c int);
GO
INSERT INTO tab (a, b, c) VALUES (1, 11, 111);
INSERT INTO tab (a, b, c) VALUES (2, 22, 222);
INSERT INTO tab (a, b, c) VALUES (3, 33, 333);
INSERT INTO tab (a, b, c) VALUES (4, 44, 444);
GO
SELECT * FROM tab FOR XML RAW, TYPE;
GO
メッセージの値をキャプチャすると、次のようになります。
<row a="1" b="11" c="111" />
<row a="2" b="22" c="222" />
<row a="3" b="33" c="333" />
<row a="4" b="44" c="444" />
つまり、単一の複数行の文字列。たとえば、宛先マシンでまったく同じテーブル構造を作成します。
CREATE TABLE tab_destination (a int, b int, c int);
から行を抽出する最良の方法と、@msg
それらを宛先テーブルに配置する方法は何ですか?
ありがとう、ペトル