Heim > Datenbank > MySQL-Tutorial > Wie kann ich XML-Daten mit Transact-SQL effizient in eine SQL Server-Tabelle umwandeln?

Wie kann ich XML-Daten mit Transact-SQL effizient in eine SQL Server-Tabelle umwandeln?

Linda Hamilton
Freigeben: 2025-01-03 01:13:45
Original
121 Leute haben es durchsucht

How can I efficiently transform XML data into a SQL Server table using Transact-SQL?

XML-Daten in eine SQL Server-Tabelle umwandeln

Für Datenverwaltungsszenarien mit XML, Konvertieren in ein strukturiertes Tabellenformat zur Analyse und Verarbeitung kann notwendig sein. Diese Aufgabe kann effektiv mit Transact-SQL (TSQL) in SQL Server erledigt werden.

Konvertierung von XML in eine Tabelle

Der Prozess der Konvertierung von XML-Daten in eine Tabelle umfasst drei Schritte Ansätze:

  1. FOR XML PATH: Dieser Ansatz verwendet die FOR XML PATH-Klausel, um Elemente innerhalb der zu extrahieren XML-Dokument und erstellen Sie ein Rowset. Die Daten werden in einer einzelnen Spalte als hierarchische Struktur gespeichert.
  2. OPENXML: Mit OPENXML können Sie mit der OPENXML-Funktion über das XML-Dokument iterieren. Diese Methode bietet mehr Kontrolle über die Struktur der generierten Tabelle.
  3. XQuery: Durch die Verwendung von XQuery-Ausdrücken in der Funktion XQuery() können Sie XML-Daten direkt in SQL Server abfragen und transformieren.

Beispiel

Betrachten Sie das folgende XML Daten:

<row>
    <IdInvernadero>8</IdInvernadero>
    <IdProducto>3</IdProducto>
    <IdCaracteristica1>8</IdCaracteristica1>
    <IdCaracteristica2>8</IdCaracteristica2>
    <Cantidad>25</Cantidad>
    <Folio>4568457</Folio>
</row>
<row>
    <IdInvernadero>3</IdInvernadero>
    <IdProducto>3</IdProducto>
    <IdCaracteristica1>1</IdCaracteristica1>
    <IdCaracteristica2>2</IdCaracteristica2>
    <Cantidad>72</Cantidad>
    <Folio>4568457</Folio>
</row>
Nach dem Login kopieren

Durch Anwenden der FOR XML PATH-Methode konvertiert der folgende Code dieses XML in eine Tabelle:

DECLARE @xml XML = 
'<root>
    <row>
        <IdInvernadero>8</IdInvernadero>
        <IdProducto>3</IdProducto>
        <IdCaracteristica1>8</IdCaracteristica1>
        <IdCaracteristica2>8</IdCaracteristica2>
        <Cantidad>25</Cantidad>
        <Folio>4568457</Folio>
    </row>
    <row>
        <IdInvernadero>3</IdInvernadero>
        <IdProducto>3</IdProducto>
        <IdCaracteristica1>1</IdCaracteristica1>
        <IdCaracteristica2>2</IdCaracteristica2>
        <Cantidad>72</Cantidad>
        <Folio>4568457</Folio>
    </row>
</root>';

SELECT
    IdInvernadero,
    IdProducto,
    IdCaracteristica1,
    IdCaracteristica2,
    Cantidad,
    Folio
FROM
    @xml.nodes('//row') AS tbl(row)
CROSS APPLY
    tbl.row.query('./@*') AS col(name, value);
Nach dem Login kopieren

Die resultierende Tabelle:

IdInvernadero  IdProducto  IdCaracteristica1  IdCaracteristica2  Cantidad  Folio
----------  ----------  ---------------  ---------------  -------  ------
8               3              8                    8                    25       4568457
3               3              1                    2                    72       4568457
Nach dem Login kopieren

Durch die Nutzung von TSQL können Sie XML-Daten effizient in strukturierte Tabellen umwandeln und so Datenanalyse-, Bearbeitungs- und Berichtsaufgaben ermöglichen.

Das obige ist der detaillierte Inhalt vonWie kann ich XML-Daten mit Transact-SQL effizient in eine SQL Server-Tabelle umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage