Pregunta

Así que estoy tirando datos de una base de datos SQL Server 2000 y luego convertirlo a XML mediante FOR XML AUTO.

El XML que vuelva parece a esto.

<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 &amp; 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>

                      

En primer lugar, en 2000 no hay ninguna raíz ( 'lo que sea'), por lo que ¿hay alguna manera de añadir un nodo raíz en el T-SQL? Además, hay una manera de envolver todos los productos de una etiqueta de productos? No acabo entiendo por qué el XML devuelto es en la forma mala. Podría arreglarlo un poco, si yo estaba en SQL 2005. Por desgracia, estoy atascado con 2000 en este momento.

Gracias

¿Fue útil?

Solución

Puede manipular el XML a su deseo con la FOR XML EXPLICIT modo. Creo que es la forma mucho más compleja que AUTO (o el camino 2k5) pero funciona bien una vez que ponerlo en marcha.

Otros consejos

Sé que en 2005 utilizando selecciona anidadas le permite incluir múltiples resultados en una etiqueta (núcleo múltiple de producto en los productos) con el seelect Ensted también ser declarados para XML AUTO.

También puede utilizar esta técnica para envolver todo en una etiqueta raíz mediante el uso de una gran anidada de selección.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top