SQL Server ДЛЯ добавления XML в тег
-
16-09-2019 - |
Вопрос
Итак, я извлекаю данные из базы данных SQL Server 2000, а затем преобразую их в XML, используя FOR XML AUTO.
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 ('whatever'), так есть ли какой-нибудь способ добавить корневой узел в T-SQL?Кроме того, есть ли способ обернуть все продукты в тег products?Я не совсем понимаю, почему возвращаемый XML находится в такой плохой форме.Я мог бы немного подправить это, если бы я был в SQL 2005.К сожалению, на данный момент я застрял с 2000 годом.
Спасибо
Решение
Вы можете манипулировать XML-файлом по своему желанию с помощью ДЛЯ XML ЯВНОГО режим.Я считаю, что это намного сложнее, чем AUTO (или путь 2k5), но он отлично работает, как только вы его запускаете.
Другие советы
Я знаю, что в 2005 году использование вложенных выборок позволяло вам встраивать несколько результатов в один основной тег (несколько продуктов в Products), при этом ensted seelect также объявлялся для XML AUTO.
Вы также могли бы использовать этот метод, чтобы обернуть все в корневой тег, используя один большой вложенный select .