ホームページ > データベース > mysql チュートリアル > XML データを SQL Server のテーブルに変換するにはどうすればよいですか?

XML データを SQL Server のテーブルに変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-03 06:09:09
オリジナル
785 人が閲覧しました

How to Convert XML Data to a Table in SQL Server?

SQL Server で XML をテーブルに変換する

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 をテーブルに変換するには、次の手順に従います。

  1. データ:
CREATE TABLE TableName (
    IdInvernadero smallint,
    IdProducto smallint,
    IdCaracteristica1 smallint,
    IdCaracteristica2 smallint,
    Cantidad int,
    Folio varchar(7)
);
ログイン後にコピー
  1. XML を変数にロードします:
DECLARE @xml XML = '<root><row><IdInvernadero>...</row><row><IdInvernadero>...</row></root>';
ログイン後にコピー
  1. ノードを使用して要素を抽出するmethod:
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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート