簡體   English   中英

使用SQL自動生成XML-如何在不使用root()的情況下圍繞一組相似項獲取外部標記?

[英]auto generate XML using SQL- How to get a outer tag around a group of similar items without using root()?

理想情況下,我想要一個如下所示的XML文件,但是到目前為止,我的查詢不會生成OrderRequests的標記,而只會生成OrderRequest的標記。 以下是我使用過的查詢以及需要生成的XML。

查詢:

declare @xml XML;
declare @RequestFileHeader table
(
ClientCode varchar(10),
CreateTime varchar(40),
BatchNumber int
);

insert into @RequestFileHeader values('CMG','2013-09-16T00:20:13.7306775-07:00',
CAST(RAND() * 1000000 AS INT) ) 

select RequestFileHeader.*, 

 OrderRequest.TransactionTime,
     (OrderRequest.ReferenceNumber -1000000+ CAST(RAND() *1000000 AS      INT))
 ReferenceNumber,
      'False' as IsRush, ShippingAddress.*
    from    
    @RequestFileHeader RequestFileHeader,
 RbcRequest OrderRequest,
 RbcOrderShippingAddress ShippingAddress-- , RbcRequest OrderRequests
 where (ShippingAddress.RequestId = OrderRequest.RequestId)



for xml AUTO , root('TransactionRequest'), Elements


 GO

XML:

<OrderRequests>
 <OrderRequest>
  <ReferenceNumber>647433081</ReferenceNumber> 
  <TransactionTime>2014-04-07T04:35:00</TransactionTime> 
  <IsRush>false</IsRush> 
  <ShippingAddress>
  <Name>ROGER RAI</Name> 
  <Address1>18855 54A AVE</Address1> 
  <Address2 /> 
  <Address3 /> 
   <City>SURREY</City> 
  <Province>BC</Province> 
  <PostalCode>V3S6R4</PostalCode> 
  <HomePhone>6046008564</HomePhone> 
  <BusinessPhone>6047247883</BusinessPhone> 
  </ShippingAddress>
  <ProgramType>AV</ProgramType> 
  <Comments /> 
 <Items>
   <Item>
      <Sku>CC03327-SLV</Sku> 
      <ProductCode>AA1346</ProductCode> 
      <Quantity>1</Quantity> 
   </Item>
 </Items>
 </OrderRequest>

將您已有的查詢嵌入到創建根節點的查詢中。 您還需要將type指令添加到現有查詢中。

select (
       -- Replace this with your existing query.
       select *
       from T
       for xml auto, root('OrderRequest'), elements, type
       )
for xml path('OrderRequests')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM