Service Broker - como extrair as linhas da mensagem XML?

Digamos que eu tenha a seguinte situação (para demonstração). O conteúdo da tabela simples é convertido em um valor XML e enviado via Service Broker para outro servidor SQL onde o resultado doSELECT deve ser armazenado no formato não XML (ou seja, na tabela de banco de dados simples). Vamos tentar:

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

Ao capturar o valor para a mensagem, parece que:

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

isto é, string multilinha simples. Diga, eu crio exatamente a mesma estrutura de tabela na máquina de destino:

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

Qual é a melhor maneira de extrair as linhas do@msge como colocá-los na tabela de destino?

Obrigado, petr

questionAnswers(2)

yourAnswerToTheQuestion