【发布时间】:2014-11-04 09:55:22
【问题描述】:
我想嵌套我的每个 XML 元素。
举个例子:
DECLARE @TempTable TABLE
(
[Column1] char(10),
[Column2] char(10)
);
INSERT INTO @TempTable([Column1], [Column2]) VALUES
('some value', 'some value'),
('some value', 'some value'),
('some value', 'some value'),
('some value', 'some value')
SELECT (
SELECT * FROM @TempTable
FOR XML PATH('Row'), TYPE)
FOR XML PATH('ParentRow'), ROOT('Root')
这将返回以下 XML:
<Root>
<ParentRow>
<Row>
<Column1>some value</Column1>
<Column2>some value</Column2>
</Row>
<Row>
<Column1>some value</Column1>
<Column2>some value</Column2>
</Row>
<Row>
<Column1>some value</Column1>
<Column2>some value</Column2>
</Row>
<Row>
<Column1>some value</Column1>
<Column2>some value</Column2>
</Row>
</ParentRow>
</Root>
这不是我希望格式化 XML 的方式。相反,我希望每个<Row> 元素都用<ParentRow> 元素包裹,如下所示:
<Root>
<ParentRow>
<Row>
<Column1>some value</Column1>
<Column2>some value</Column2>
</Row>
</ParentRow>
<ParentRow>
<Row>
<Column1>some value</Column1>
<Column2>some value</Column2>
</Row>
</ParentRow>
<ParentRow>
<Row>
<Column1>some value</Column1>
<Column2>some value</Column2>
</Row>
</ParentRow>
<ParentRow>
<Row>
<Column1>some value</Column1>
<Column2>some value</Column2>
</Row>
</ParentRow>
</Root>
对这些人有帮助吗?
【问题讨论】:
标签: sql sql-server xml nested for-xml-path