Frage

Ich habe eine SQL Server 2005-Tabelle wie folgt aus:

create table Taxonomy(
CategoryId integer primary key,
ParentCategoryId integer references Taxonomy(CategoryId),
CategoryDescription varchar(50) 
)

mit Daten, die wie CategoryIdParentCategoryIdCategoryDescription 123nullfoo345123bar

I'd like to query it into an xml document like this:

<taxonomy>
<category categoryid="123" categorydescription="foo">
      <category id="455" categorydescription="bar"/>
</category>
</taxonomy>

Ist es möglich, dies mit FOR XML AUTO, ELEMENTE zu tun? Oder muss ich für die Verwendung von XML EXPLICIT?

War es hilfreich?

Lösung

Es ist möglich, aber die wichtigste Einschränkung ist, dass die Ebene der Hierarchie muss hart codiert werden. Das SQL Server-Online hat eine Beschreibung, wie bei Link . Im Folgenden finden Sie eine Beispielabfrage, die das XML erzeugt Sie angefordert:

SELECT [CategoryId] as "@CategoryID"
      ,[CategoryDescription] as "@CategoryDescription"
      ,(SELECT [CategoryId]
       ,[CategoryDescription]
       FROM [dbo].[Taxonomy] "Category"
       WHERE ParentCategoryId = rootQuery.CategoryId
       FOR XML AUTO, TYPE)
FROM [dbo].[Taxonomy] as rootQuery
where [ParentCategoryId] is null
FOR XML PATH('Category'), ROOT('Taxonomy')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top