sql >> データベース >  >> RDS >> Sqlserver

SQL Serverストアドプロシージャでxmlパラメータをループして解析する方法

    このステートメントを試してください:

    SELECT
       Pers.value('(ID)[1]', 'int') as 'ID',
       Pers.value('(Name)[1]', 'Varchar(50)') as 'Name',
       Pers.value('(LastName)[1]', 'varchar(50)') as 'LastName'
    FROM
       @YourXml.nodes('/Employees/Person') as EMP(Pers)
      

    これにより、そのデータの適切な行/列表現が得られます。

    もちろん、これを INSERT ステートメントの 2 番目の部分に拡張することもできます:

    INSERT INTO dbo.YourTargetTable(ID, Name, LastName)
      SELECT
         Pers.value('(ID)[1]', 'int') as 'ID',
          Pers.value('(Name)[1]', 'Varchar(50)') as 'Name',
         Pers.value('(LastName)[1]', 'varchar(50)') as 'LastName'
      FROM
         @YourXml.nodes('/Employees/Person') as EMP(Pers)
      

    完了 - ループやカーソル、またはそのようなひどいものは必要ありません! :-)




    1. sql-存在しない値を返す単一のクエリ

    2. EctoFragmentsを使用してタイムスタンプに間隔を追加します

    3. データテーブルの特定の行を表示するvb.netクエリ[基本]

    4. エラーが発生する:herokuにデプロイするときは、少なくとも1つのpostgresql-client-<version>パッケージをインストールする必要があります