从数据库中,我尝试为查询结果中的每一行生成如下所示的 XML:
<Message>
<Header>
<MessageName>MyMessage</MessageName>
<TimeStamp>2017-03-31T14:32:48</TimeStamp>
<TrackingNum>1</TrackingNum>
</Header>
<Body>
<Activity>
<GUID>SomeGUID</GUID>
<OrderNum>3242432<OrderNum/>
<OrderDate>20160331143248</OrderDate>
</Activity>
</Body>
</Message>
我的查询如下所示:
SELECT
(SELECT DISTINCT top 20
[GUID],
OrderNum,
OrderDate,
FROM TableA
For XML PATH('Activity'), Type
) as Body
For XML path('Message'), TYPE
此查询输出包含在 <Message><Body>标记中的所有行,只有一个包含所有内容的 XML 的单元格。我不知道在哪里包含该<Header>部分的信息。
上面的查询产生以下内容,这是不正确/不完整的:
<Message>
<Body>
<Activity>
<GUID>sdlksdkljsdkl</GUID>
<OrderNum>23423423</OrderNum>
<OrderDate>20160431143248</OrderDate>
</Activity>
<Activity>
<GUID>sdfsdfsw4erw</GUID>
<OrderNum>45560900</OrderNum>
<OrderDate>20160531143248</OrderDate>
</Activity>
<Activity>
<GUID>retertertwew</GUID>
<OrderNum>873409384</OrderNum>
<OrderDate>20160631143248</OrderDate>
</Activity>
</Body>
</Message>
我们如何在<Body>标签之前附加标题部分,同时将输出分成多行?感谢您的任何帮助。
Body/Activity编辑:元素的模拟数据:
GUID OrderNum OrderDate
AAAA 1000 2017-04-13 12:00
BBBB 2000 2017-04-13 12:00
CCCC 3000 2017-04-13 12:00
我试图在他们自己的 xml 中获取每一行,就像上面的第一个 XML 块一样。