SQL Server - Wie kann ein Multielement-XML in XML-Werte mit einem Element zerlegt werden, die in eine Tabelle eingefügt werden?
Ich kämpfe mit@x.nodes('...')
da ich neu bei XQuery bin. Ich habe die XML-Variable@x
folgendermaßen aufgebaut:
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);
Wenn sein Inhalt angezeigt wird, sieht er folgendermaßen aus:
<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" />
eine einzelne mehrzeilige Zeichenfolge. Wie kannFetzen der einzelne Multielement-XML-Wert zu vielen Einzelelementwerten in der Zieltabelle? (Mir ist der Beamte bekanntnode () Methode (xml Datentyp) Dokumentationsseite, aber ich mache etwas falsch.)
CREATE TABLE tab2 (e XML);
??? ... @x.nodes('//row') ... ???
Danke, Petr
P.S. Die Frage ist lose verwandt mitService Broker - Wie werden die Zeilen aus der XML-Nachricht extrahiert?