@x.nodes('...')
因为我是 XQuery 的新手,所以我正在与之抗争。我确实@x
通过以下方式构造了 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
DECLARE @x XML = (SELECT * FROM tab FOR XML RAW, TYPE);
当它的内容显示出来时,它看起来像:
<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" />
即单个多行字符串。如何将单个多元素 XML 值分解为目标表中的多个单元素值?(我知道官方的节点()方法(xml数据类型)文档页面,但我做错了。)
CREATE TABLE tab2 (e XML);
??? ... @x.nodes('//row') ... ???
谢谢,彼得
PS 这个问题与 Service Broker 松散相关——如何从 XML 消息中提取行?