In SQL Server kann die Konvertierung von XML-Daten in ein Tabellenformat durch verschiedene Methoden erreicht werden. Ein Ansatz besteht darin, mithilfe der Knotenmethode die gewünschten Elemente aus der XML-Struktur zu extrahieren und diese Elemente dann als Spalten in der resultierenden Tabelle auszuwählen.
Berücksichtigen Sie die folgenden 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>
An Um dieses XML in eine Tabelle umzuwandeln, führen Sie die folgenden Schritte aus:
CREATE TABLE TableName ( IdInvernadero smallint, IdProducto smallint, IdCaracteristica1 smallint, IdCaracteristica2 smallint, Cantidad int, Folio varchar(7) );
DECLARE @xml XML = '<root><row><IdInvernadero>...</row><row><IdInvernadero>...</row></root>';
INSERT INTO TableName ( IdInvernadero, IdProducto, IdCaracteristica1, IdCaracteristica2, Cantidad, Folio ) SELECT Tbl.Col.value('IdInvernadero[1]', 'smallint'), Tbl.Col.value('IdProducto[1]', 'smallint'), Tbl.Col.value('IdCaracteristica1[1]', 'smallint'), Tbl.Col.value('IdCaracteristica2[1]', 'smallint'), Tbl.Col.value('Cantidad[1]', 'int'), Tbl.Col.value('Folio[1]', 'varchar(7)') FROM @xml.nodes('//row') Tbl(Col);
Diese Abfrage fügt die extrahierten Elemente mit den angegebenen Spaltennamen in die Tabelle ein. Die resultierende Tabelle hat die folgende Struktur:
IdInvernadero | IdProducto | IdCaracteristica1 | IdCaracteristica2 | Cantidad | Folio |
---|---|---|---|---|---|
8 | 3 | 8 | 8 | 25 | 4568457 |
3 | 3 | 1 | 2 | 72 | 4568457 |
Das obige ist der detaillierte Inhalt vonWie konvertiere ich XML-Daten in eine Tabelle in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!