我想嵌套每个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>如下所示的元素包裹:
<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>
这家伙有帮助吗?
好的,这是代码。
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 ( SELECT T1.* FOR XML path('') ,root('Row') ,type ) FROM @TempTable AS T1 FOR XML path('ParentRow') ,type ) FOR XML path('Root')
这是输出。
祝你好运…