Service Broker - jak wyodrębnić wiersze z komunikatu XML?

Powiedz, że mam następującą sytuację (do demonstracji). Prosta zawartość tabeli jest konwertowana na wartość XML i wysyłana za pośrednictwem Service Broker do innego serwera SQL, w którym wynikSELECT ma być przechowywany w formie innej niż XML (tj. zwykłej, prostej tabeli bazy danych). Spróbujmy:

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

Podczas przechwytywania wartości do wiadomości wygląda to tak:

<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" />

tj. pojedynczy ciąg wielowierszowy. Powiedzmy, że tworzę dokładnie taką samą strukturę tabeli na komputerze docelowym:

CREATE TABLE tab_destination (a int, b int, c int);

Jaki jest najlepszy sposób na wyodrębnienie wierszy z@msgi jak umieścić je w tabeli docelowej?

Dzięki, Petr

questionAnswers(2)

yourAnswerToTheQuestion