MERGE

構文:形式 1

>>--EXEC ADO--.-------------------.-MERGE DATASET FROM ------->
              +-USING dataset_name+


 >---:src_dataset_hv --.--------------------.----------------->
                       +--PRESERVE CHANGES--+


 >---.--------------------------------------.-END-EXEC--------><
     |                                      |
     +-ON SCHEMA DIFFERENCE--+-ADD         -+
                             +-ADD WITH KEY-+
                             +-ERROR       -+
                             +-IGNORE      -+

構文:形式 2

>>--EXEC ADO--.-------------------.-MERGE DATASET ------------>
              +-USING dataset_name+


 >---src_dataset_name -----.--------------------.------------->
                           +--PRESERVE CHANGES--+


 >---.--------------------------------------.-END-EXEC--------><
     |                                      |
     +-ON SCHEMA DIFFERENCE--+-ADD         -+
                             +-ADD WITH KEY-+
                             +-ERROR       -+
                             +-IGNORE      -+

構文:形式 3

>>--EXEC ADO--.-------------------.-MERGE DATATABLE----------->
              +-USING dataset_name+


 >---dest_datatable FROM DATASET src_dataset_name------------->


 >-------------.------------------------------------.--------->
               +-FOR-.-ADDED-------------.-DATAROWS-+
                     +-CURRENT-----------+
                     +-DELETED-----------+
                     +-MODIFIED CURRENT--+
                     +-MODIFIED ORIGINAL-+
                     +-ORIGINAL----------+
                     +-UNCHANGED---------+           


 >--.-------------------------.---.--------------------.------>
    +-WHERE search conditions-+   +--PRESERVE CHANGES--+


 >---.--------------------------------------.-END-EXEC--------><
     |                                      |
     +-ON SCHEMA DIFFERENCE--+-ADD         -+
                             +-ADD WITH KEY-+
                             +-ERROR       -+
                             +-IGNORE      -+

構文:形式 4

>>--EXEC ADO---MERGE DATATABLE-------------------------------->

 >---dest_datatable FROM DATATABLE src_datatable_name--------->

 >---.------------------------------------.------------------->
     +-FOR-.-ADDED-------------.-DATAROWS-+
           +-CURRENT-----------+
           +-DELETED-----------+
           +-MODIFIED CURRENT--+
           +-MODIFIED ORIGINAL-+
           +-ORIGINAL----------+
           +-UNCHANGED---------+           


 >---.-------------------------.---.--------------------.---->
     +-WHERE search conditions-+   +--PRESERVE CHANGES--+


 >---.--------------------------------------.-END-EXEC---><
     |                                      |
     +-ON SCHEMA DIFFERENCE--+-ADD         -+
                             +-ADD WITH KEY-+
                             +-ERROR       -+
                             +-IGNORE      -+

パラメータ:

dataset_name 使用するターゲット DataSet。dataset_name を指定しない場合は、現在の DataSet が使用されます。
src_dataset_hv マージ用のソース DataSet を格納するホスト変数。
src_dataset_name マージ用のソースとして使用する DataTable の DataRow を指定するソース DataSet の名前。
dest_datatable DataTable データのマージ先。
src_datatable DataTable データのコピー元。
search_conditions 標準の SQL WHERE 句に準拠した有効な式。
PRESERVE CHANGES ターゲット内の現在の値を上書きする値をソースから受け取らないようにする(新規の値のみ)。
ON SCHEMA DIFFERENCE ソースとターゲットの DataSet または DataTable スキーマが異なる場合の処理を指定する。

目的:

MERGE 文では、ターゲット DataSet または DataTable に新しいデータをマージします。新しいデータのソースは、完全な DataSet、別の DataSet 内の DataTable、または別の DataSet 内の DataTable の一連の DataRow です。

.NET API 標準に従って、ターゲット DataSet または DataTable の変更を保持するためのオプションも用意されています。

また、スキーマが異なる場合に実行する処理を指定することもできます。

例:

MERGE