SQL Server では、さまざまな方法で XML データを表形式に変換できます。 1 つのアプローチには、ノード メソッドを使用して XML 構造から目的の要素を抽出し、結果として得られるテーブルの列としてそれらの要素を選択することが含まれます。
次の XML データについて考えてみましょう。
<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>
Toこの XML をテーブルに変換するには、次の手順に従います。
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);
このクエリは、抽出された要素を指定された列名のテーブルに挿入します。結果のテーブルは次の構造になります:
IdInvernadero | IdProducto | IdCaracteristica1 | IdCaracteristica2 | Cantidad | Folio |
---|---|---|---|---|---|
8 | 3 | 8 | 8 | 25 | 4568457 |
3 | 3 | 1 | 2 | 72 | 4568457 |
以上がXML データを SQL Server のテーブルに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。