2017-03-16 11 views
0

MS SQLから次のXMLを作成するにはどうすればよいですか? 私は見て、Googleと私の具体的な例のための以下のように、おかげで見ることができませんでした。 これは、XML PATHを何らかの方法で使用しているSQLクエリからのものです。MSSQLからXMLを作成する

<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> 
+3

このXMLは、** what **から作成します。この質問は不明です。 – zx485

+0

SQL selectクエリからXMLを生成しますか? –

+0

深いレベルに '1:n'ネストされたデータはありますか?このサンプルはネストされていますが、普通の '1:1'のように見えます... – Shnugo

答えて

1

と仮定すると、すべての値が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> 
+0

はい!これはまさに私が必要としていたものです。ありがとう – paulmezza

関連する問題