所以我从SQL Server 2000 DB中提取数据,然后使用FOR XML AUTO将其转换为XML。
我回来的XML看起来像这样。
<Order OrderNumber="2000004" DeliveryPickupCharge="5.9900" SalesTaxTotal="0.0000" SubTotal="0.0000" Total="5.9900">
<Customer FirstName="Anthony" LastName="Caporale">
<Product ProductName="Paper Towels">
<OrderItem ItemQuantity="1" ItemPrice="8.5900" Total="8.5900" />
</Product>
<Product ProductName="Bathroom Tissue - Giant Roll">
<OrderItem ItemQuantity="2" ItemPrice="7.1500" Total="14.3000" />
</Product>
<Product ProductName="Napkins - 1-Ply">
<OrderItem ItemQuantity="1" ItemPrice="3.4900" Total="3.4900" />
</Product>
<Product ProductName="Facial Tissues - 2-Ply - White">
<OrderItem ItemQuantity="2" ItemPrice="2.0500" Total="4.1000" />
</Product>
<Product ProductName="Anti-Perspirant & Deodorant - Ultra DryCool Rush">
<OrderItem ItemQuantity="2" ItemPrice="3.5900" Total="7.1800" />
</Product>
<Product ProductName="Flushable Wipes - Fresh Mates Cloths - Refill">
<OrderItem ItemQuantity="2" ItemPrice="2.9500" Total="5.9000" />
</Product>
首先,在2000年没有Root('what'),所以有没有办法在T-SQL中添加根节点?另外,有没有办法将所有产品包装在产品标签中?我不明白为什么XML返回的形式如此糟糕。如果我在SQL 2005中,我可以稍微解决它。不幸的是,我现在仍然坚持使用2000。
由于
答案 0 :(得分:0)
您可以使用FOR XML EXPLICIT模式操作XML。我认为它比AUTO(或2k5 PATH)更复杂,但一旦你开始它就可以正常工作。
答案 1 :(得分:0)
我知道在2005年使用嵌套选择允许您在一个核心标记(产品中的多个产品)中嵌入多个结果,并且还为XML AUTO声明了随后的seelect。
您还可以使用此技术通过使用一个大型嵌套选择将所有内容包装在根标记中。