Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Формирование древовидной структуры XML  [new]
Креативщик
Member

Откуда:
Сообщений: 4
Здравствуйте.

Есть такая задача:
Таблица (типовая иерархия в реляционном представлении):

CREATE Table categories(ID int, parent_id int, Name varchar(100)).

Нужно сформировать XML для древовидной структуры любого уровня вложенности (до 10),Server MS SQL 2005:

Например:

Insert into categories values(1,null, "Name1")
Insert into categories values(2,1, "Name2")
Insert into categories values(3,1, "Name3")
Insert into categories values(4,3, "Name4")
Insert into categories values(5,null, "Name5")


Желанный результат:

<Categories>
<Category ID="1" Name="Name1">
<Categories>
<Category ID="2" Name="Name2"/>
<Category ID="3" Name="Name3"/>
<Categories>
<Category ID="4" Name="Name4"/>
</Categories>
</Categories>
</Category>
<Category ID="5" Name = "Name5"/>
</Categories>

Возможно ли это сделать с помощью select … for XML path() / других опций?
Или надо конструировать строку рекурсивно вручную (CTE+ конкатенация)?

Заранее, спасибо!
20 ноя 09, 01:19    [7953959]     Ответить | Цитировать Сообщить модератору
 Re: Формирование древовидной структуры XML  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

это посмотрите:
http://social.msdn.microsoft.com/forums/en-US/sqlxml/thread/ba314128-9bd5-40c1-8382-685599deabde/

Posted via ActualForum NNTP Server 1.4

20 ноя 09, 08:12    [7954221]     Ответить | Цитировать Сообщить модератору
 Re: Формирование древовидной структуры XML  [new]
Креативщик
Member

Откуда:
Сообщений: 4
daw, спасибо.
Найденное вами решение мне подходит.
21 ноя 09, 00:23    [7959176]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить