Не делай этого!
Достаточно структуры:
<Fruits>
<Fruit>Apple</Fruit>
<Fruit>GrapesFruit>
<Fruit>Pineapple</Fruit>
</Fruits>
Это будет легко генерироваться из табличных данных FOR XML PATH('Fruit'),ROOT('Fruits')
.
Порядок элемента является неотъемлемой частью документа и не изменится. Нет необходимости указывать свои элементы. Позже, когда вы прочтете это, вам придется написать либо один вызов для каждого элемента, либо вам придется иметь дело с такими звонками //*[predicate]
, которые медленны и просты.
Структура, которую вы можете задать с помощью
SELECT TheXml.value('(/Fruits/Fruit)[1]') AS Fruit1
,TheXml.value('(/Fruits/Fruit)[2]') AS Fruit2
...and so on...
Очень плохо иметь нумерованные элементы. Если вам действительно нужны эти цифры, вы можете подумать о
<Fruits>
<Fruit nr="1">Apple</Fruit>
<Fruit nr="2">GrapesFruit>
<Fruit nr="3">Pineapple</Fruit>
</Fruits>
То же самое с этим
<ColorsandFruitsNumber2>
Не делай этого снова! У ваших данных будет какой-то ключ группировки. Используйте этот групповой ключ, чтобы отметить группу с атрибутом.
<ColorsandFruitsNumber groupkey="2">
Вы найдете множество примеров того, как создавать вложенные XML-файлы FOR XML PATH
. Я бы избегал AUTO
, так как вам нужно полагаться на движок для создания структуры для вас ...
Если это вам не поможет, укажите данные образца (формат таблицы или - еще лучше - как мало скрипта с DECLARE TABLE
и INSERT INTO
) и ожидаемый результат.