Это определенно намного сложнее с SQL 2000. Ниже приведен пример запроса, который может помочь вам начать этот процесс. Пожалуйста, поймите, что это не совсем тот формат, который вы ищете. Цель запроса - помочь вам начать ... подтолкнуть в правильном направлении.
Хитрость здесь в том, чтобы использовать FOR XML EXPLICIT и тщательно создавать псевдонимы столбцов для управления расположением элементов.
Declare @Parent Table(Id Int, Data VarChar(20))
Insert Into @Parent Values(1, 'Fruit')
Insert Into @Parent Values(2, 'Vegetable')
Declare @Child Table(Id Int, ParentId Int, Name VarChar(20))
Insert Into @Child Values(1, 1, 'Apple')
Insert Into @Child Values(2, 1, 'Banana')
Insert Into @Child Values(3, 2, 'Carrot')
Insert Into @Child Values(4, 2, 'Pea')
Select 1 As Tag,
NULL As Parent,
Id As [Parent!1!Id!Element],
Data As [Parent!1!Data!Element],
NULL As [Child!2!Id!Element],
NULL As [Child!2!Name!Element]
From @Parent P
Union
Select 2 As Tag,
1 As Parent,
P.Id,
NULL,
C.Id,
Name
From @Child C
Inner Join @Parent P
On C.ParentId = P.Id
Order By [Parent!1!Id!Element]
For XML Explicit