Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Processing External Data →  ABAP Database Accesses →  Open SQL →  Open SQL - Writes 

MODIFY dbtab

Short Reference

Other versions: 7.31 | 7.40 | 7.54


MODIFY target FROM source. 


The MODIFY statement inserts one or more rows specified in source in the database table or classic view specified in target, or overwrites existing rows.

System Fields

sy-subrc Meaning
0 When a work area was declared in source, the specified row was insertedor modified. When an internal table was specified in source, all specified lines were inserted, modified, or the internal table is empty.
2 When a LOB handle structure was specified with a component forwriter streams, the non-LOBhandle components were not yet written to the database, but instead are passed when the stream is closed, at the latest. Whether this situation occurs or not depends on the database. Refer toLOB handles.
4 When a work area was specified in source, no rows were processed, orwhen an internal table was specified in source, not all specified rows were processed because there is already a row with the same uniquesecondary index in the database table.

The statement MODIFY sets sy-dbcnt to the number of processed rows. If an overflow occurs because the number or rows is greater than 2,147,483,647, sy-dbcnt is set to -1. If sy-subrc is 2, sy-dbcnt is also set to the value -1 (for undefined).


  • The changes are committed to the database by the next database commit. Until that point, they can still be undone using a database rollback The current isolation level defines whether the modified data can be read into other database LUWs before or only after the database commit.
  • The statement MODIFY sets a database lock until the next database commit or rollback. If used incorrectly, this can produce a deadlock.
  • The number of rows that can be inserted or modified in the tables of a database within a database LUW is limited, since a database system can only manage a limited amount of locks and data in the rollback area.


MODIFY dbtab - target

MODIFY dbtab - source