ABAPにおけるDBへのINSERT操作は以下で行います。
★基本系
INSERT INTO [DBテーブルID] VALUES [構造ID] "DBテーブルに単一レコード追加
INSERT [DBテーブルID] FROM TABLE [内部テーブルID] "DBテーブルに複数レコード追加
上記でDBテーブルに対し、単一レコードないし複数レコードをINSERTできます。
※内部テーブルに対するINSERTは構文が違うためご注意ください。
また、ACCEPTING DUPLICATE KEYSオプションを使用することでキー重複を起こしてもショートダンプを起こさず、処理を継続することができます。
★ACCEPTING DUPLICATE KEYSオプション
INSERT [DBテーブルID] FROM TABLE [内部テーブルID] ACCEPTING DUPLICATE KEYS.
★使用例
INSERT ZTEST01 FROM TABLE IT_TEST01 ACCEPTING DUPLICATE KEYS.
IF SY-SUBRC = 0.
COMMIT WORK AND WAIT.
MESSAGE 'INSERTに成功しました。' TYPE 'S'.
ELSE.
ROLLBACK WORK.
MESSAGE 'INSERTに失敗しました。' TYPE 'E'.
ENDIF.
★Tips
*TRY-CATCHを使用すると、ACCEPTING DUPLICATE KEYSを使用しなくても重複によるショートダンプを回避しつつ、処理を続行できます。
TRY.
INSERT ZTEST01 FROM TABLE IT_TEST01.
CATCH CX_ROOT.
SY-SUBRC = 4.
ENDTRY.
IF SY-SUBRC = 0.
COMMIT WORK AND WAIT.
MESSAGE 'INSERTに成功しました。' TYPE 'S'.
ELSE.
ROLLBACK WORK.
MESSAGE 'INSERTに失敗しました。' TYPE 'E'.
ENDIF.

