[英]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.