SQL Server - como destruir um XML multielement para valores XML de elemento único inseridos na tabela?
Eu estou lutando com@x.nodes('...')
como sou novo no XQuery. Eu tenho a variável XML@x
construído da seguinte maneira:
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
DECLARE @x XML = (SELECT * FROM tab FOR XML RAW, TYPE);
Quando seu conteúdo é exibido, 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. Como podedespedaçar o valor XML multielementar único para muitos valores de elemento único na tabela de destino? (Eu estou ciente do oficialMétodo nodes () (tipo de dados xml) página de documentação, mas estou fazendo algo errado.)
CREATE TABLE tab2 (e XML);
??? ... @x.nodes('//row') ... ???
Obrigado, petr
P.S. A questão é vagamente relacionada aService Broker - como extrair as linhas da mensagem XML?