SQL en het gebruik van For XML: Raw en Auto

Geschreven door: op maandag 30 december 2019

Leestijd:

Een query binnen SQL geeft natuurlijk resultaten terug. Deze kun je op verschillende manieren weergeven: als tabel, als tekst of je kunt de resultaten opslaan in een bestand. Wat ook kan, is de resultaten van een query weergeven als XML. Hiervoor gebruik je de For XML functionaliteit binnen SQL. Maar hoe werkt dit precies?

De functie For XML heeft verschillende modes. In deze blog bespreken we de modus Auto en Raw:

  1. RAW: Deze modus genereerd een enkel <row> element voor elke rij die in de query resultaten terug komt. Je kunt hier verschillende levels in de XML maken door meerdere query’s te schrijven.

  2. AUTO: Deze modus maakt een gelevelde XML op basis van de SELECT query’s die je opgeeft. Je hebt hier minimale controle over hoe de XML wordt opgebouwd. Je kunt ook hier weer gebruik maken van meerdere query’s om de verschillende levels binnen de XML te creëren.

Nu volgen er 2 voorbeelden om beide beter uit te leggen.

We maken eerst een tweetal test tabellen aan:
SQL For XML raw results

For XML Raw

Met de volgende query maken we van deze tabel een XML bestand, met als eerste de modus RAW:

SQL For XML raw results

Dit geeft het volgende resultaat:

SQL For XML raw results

Je ziet dat hier per regel uit de resultaten een <row> wordt aangemaakt waarbij per kolom een attribuut wordt aangemaakt binnen de <row>.

Voor meer informatie over het gebruik van deze modus en extra voorbeelden, zie: https://docs.microsoft.com/en-us/sql/relational-databases/xml/use-raw-mode-with-for-xml?view=sql-server-ver15

For XML Auto

De volgende modus is AUTO. We maken weer gebruik van dezelfde testtabellen als bij het eerste voorbeeld:

Dit geeft het volgende resultaat:

Je ziet hier dat de resultaten van de query al meer uitgesplitst worden en niet meer alles in een <row> wordt neergezet. Ook zie je dat er een sub element wordt aangemaakt in de XML vanwege de JOIN die gedaan wordt. Als laatste krijgt de <row> de naam van de tabel waar de informatie vandaan komt.

Voor meer informatie over het gebruik van deze modus en extra voorbeelden, zie: https://docs.microsoft.com/en-us/sql/relational-databases/xml/use-auto-mode-with-for-xml?view=sql-server-ver15

In mijn volgende blog zullen EXPLICIT en PATH besproken worden. Deze is hier te lezen.


Andere blogartikelen

  • Het gebruik van await in C#

    Geschreven door: op zaterdag 28 maart 2020

    Binnen applicaties kunnen soms functies voorkomen die lang nodig hebben om te voltooien. Denk bijvoorbeeld aan een call naar een API van een derde partij die veel data teruggeeft die verwerkt moet wor ...

    Bekijk het artikel »
  • Het gebruik van de SemaphoreSlim class in C#

    Geschreven door: op zaterdag 28 maart 2020

    Webapplicaties kunnen meerdere calls vanuit meerdere plekken verwerken zonder dat deze requests op elkaar moeten wachten. Maar soms heb je te maken met een usecase waar je helemaal niet wilt dat funct ...

    Bekijk het artikel »
  • SQL en het gebruik van JOIN

    Geschreven door: op zaterdag 28 maart 2020

    Binnen SQL heb je verschillende manieren om tabellen met elkaar te koppelen om zo data uit beide tabellen terug te krijgen in de resultaten. Maar wat houdt elk van deze joins in?Verschillende typenE ...

    Bekijk het artikel »
Bel 072 5345 888
Meer dan 40 bedrijven vertrouwen op ons
Onze Middelen en Technologieën
microsoft silver partner
Adobe partner
fd-gazellen-2018.jpg
Google analytics
partners-logo.jpg
Op de hoogte blijven?

Meld u aan voor de gratis nieuwsbrief om op de hoogte te blijven van onze activiteiten