[英]How to structure this XML in SQL Server?
我使用以下SQL创建一些临时表,然后使用这些临时表生成XML。 我能够生成XML,但是我无法按照我想要的方式来构造这个东西。
我想打开IndirectSalesMessage
标签,然后打开Header
标记,然后关闭<Header>
标签,然后打开DIST
标签,然后关闭DIST
最后关闭之前标签IndirectSalesMessage
标签。
这是我现在在SQL中使用的代码及其作用。 生成的XML在“我生成的XML”下。 我实际要生成的XML低于“我要生成的XML”下的XML。
-- Creation of #XML HEADER
SELECT DISTINCT
[targetapplication],
[originatingapplication],
[interfacename],
'7320177' E1_num
INTO
#xml_header
FROM
[CP].[dbo].[xmlforload]
-- Creation of #DIST2
SELECT
distributor_e1number,
debit_memo_number
INTO
#dist2
FROM
#xml_dist
WHERE
distributor_e1number = '7320177'
AND debit_memo_number = 'June20177320177'
-- Creation of #XML
SELECT
Header.[targetapplication],
Header.[interfacename],
Header.[originatingapplication],
DIST.distributor_e1number,
DIST.debit_memo_number
FROM
#xml_header Header
INNER JOIN
#dist2 DIST ON header.e1_num = dist.distributor_e1number
FOR XML PATH('Header'), ROOT('IndirectSalesMessage'), ELEMENTS
我当前生成的 XML:
<IndirectSalesMessage>
<Header>
<TargetApplication>EnterpriseOne 9.1</TargetApplication>
<InterfaceName>CA_Tracing</InterfaceName>
<OriginatingApplication>Alliance-Model N</OriginatingApplication>
<distributor_e1number>7320177</distributor_e1number>
<debit_memo_number>June20177320177</debit_memo_number>
</Header>
</IndirectSalesMessage>
我要生成的 XML:
<IndirectSalesMessage>
<Header>
<TargetApplication>EnterpriseOne 9.1</TargetApplication>
<InterfaceName>CA_Tracing</InterfaceName>
<OriginatingApplication>Alliance-Model N</OriginatingApplication>
</Header>
<DIST>
<distributor_e1number>7320177</distributor_e1number>
<debit_memo_number>June20177320177</debit_memo_number>
</DIST>
</IndirectSalesMessage>
创建XML
SELECT
Header.targetapplicatioAS 'Header/Targetapplication',
Header.interfacename AS 'Header/Interfacename',
Header.originatingapplication AS 'Header/Originatingapplication',
DIST.distributor_e1number AS 'DIST/distributor_e1number',
DIST.debit_memo_number AS 'DIST/debit_memo_number'
FROM #xml_header Header
INNER JOIN #dist2 DIST ON
header.e1_num = dist.distributor_e1number
FOR XML PATH('IndirectSalesMessage')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.