[英]Creating XML from MSSQL
如何从MS SQL创建以下XML? 我已经看过了,谷歌也看不到下面的具体例子,谢谢。 这将以某种方式来自使用XML PATH的SQL查询。
<message>
<header date="15/07/2016" userid="QUOTEJOB">
<schema name="TKJobLoaderSchema" version="1.0" />
<source system="" product="" productversion="" />
<destination system="" product="" productversion="" />
</header>
<body>
<jobs>
<job action="jmCreate" company="02" contract="QW" description="test job" job_type="02" priority="5" created_by="QUOTEJOB">
<job_lines>
<job_line line_no="1" line_type="SOR" code="AQW" quantity="1916.5" />
</job_lines>
<job_narratives>
<job_narrative id="2" narrative="4678f874-314c-4584-99e3-c69e3af71999" />
</job_narratives>
<job_property company="02" ref="02363" />
</job>
</jobs>
</body>
</message>
假设每个值都是1:1
则可以像下面这样创建给定的样本(将文字替换为实际的列名,变量等):
SELECT {d'2016-07-15'} AS [header/@date]
,'QUOTEJOB' AS [header/@userid]
,'TKJobLoaderSchema' AS [header/schema/@name]
,'1.0' AS [header/schema/@version]
,'' AS [header/source/@system]
,'' AS [header/source/@product]
,'' AS [header/source/@productversion]
,'' AS [header/destination/@system]
,'' AS [header/destination/@product]
,'' AS [header/destination/@productversion]
,'jmCreate' AS [body/jobs/job/@action]
,'02' AS [body/jobs/job/@company]
--more attributes of <job>
,1 AS [body/jobs/job/job_lines/job_line/@line_no]
--more attributes of <job_line>
,2 AS [body/jobs/job/job_narratives/job_narrative/@id]
--more attributes of <job_narrative>
,'02' AS [body/jobs/job/job_property/@company]
,'02363' AS [body/jobs/job/job_property/@ref]
FOR XML PATH('message')
结果
<message>
<header date="2016-07-15T00:00:00" userid="QUOTEJOB">
<schema name="TKJobLoaderSchema" version="1.0" />
<source system="" product="" productversion="" />
<destination system="" product="" productversion="" />
</header>
<body>
<jobs>
<job action="jmCreate" company="02">
<job_lines>
<job_line line_no="1" />
</job_lines>
<job_narratives>
<job_narrative id="2" />
</job_narratives>
<job_property company="02" ref="02363" />
</job>
</jobs>
</body>
</message>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.