ABAP Keyword Documentation →  ABAP − Reference →  Processing External Data →  ABAP Database Accesses →  Open SQL →  Open SQL - Write Accesses →  UPDATE dbtab → 

UPDATE dbtab - set_expression

Short Reference

Syntax

... [col1 = f1 col2 = f2 ... ]
    [col1 = col1 + f1 col2 = col2 + f2 ...]
    [col1 = col1 - f1 col2 = col2 - f2 ...]
    [(expr_syntax1) (expr_syntax2) ...] ... .


Extras:

1. ... col = f

2. ... col = col + f

3. ... col = col - f

4. ... (expr_syntax)

Effect

Change expressions for the addition SET of the statement UPDATE. The individual modifying expressions can be defined in any number of ways.

Addition 1

... col = f

Effect

Assigning a value. For col, columns of the database table given in target or in the specified view dbtab can be specified using a column name comp or dbtab~comp. For f, data objects of the ABAP program or a column name dbtab~comp of another column in the database table can be used.

The statement UPDATE assigns the content of f to the columns col in all the rows defined by the WHERE condition. If the data types are not compatible, they are converted as follows:

In the assignment, the assigned value must fit in the value range of the column. Otherwise the handleable exception CX_SY_OPEN_SQL_DB is raised. This applies in particular for:

If a column is specified for f, changes to this column that are made in the same UPDATE statement are ignored during the assignment.

If a column col appears in multiple change expressions, the last change expression applies.

Addition 2

... col = col + f

Effect

Addition of a value. For col and f, the same applies as for the assignment of a value. However, col must have a numeric data type. The data types DF16_RAW, DF16_SCL, DF34_RAW, and DF34_SCL are not permitted.

The statement UPDATE adds the value of f to the content of the column col, in all the rows defined by the WHERE condition. Otherwise, the same rules apply as for the assignment of a value.

Addition 3

... col = col - f

Effect

Subtraction of a value. For col and f, the same applies as for the assignment of a value. However, col must have a numeric data type. The data types DF16_RAW, DF16_SCL, DF34_RAW, and DF34_SCL are not permitted.

The statement UPDATE subtracts the value of f from the content of the column col, in all the rows defined by the WHERE condition. Otherwise, the same rules apply as for the assignment of a value.

Addition 4

... (expr_syntax)

Effect

Dynamic specification of change expressions. A change expression can be specified as a parenthesized data object expr_syntax that, when the statement is executed, either contains the syntax of one or more static change expressions or is initial. The data object expr_syntax can be a character-like data object or a standard table without secondary table keys and with a character-like data object. The syntax in expr_syntax is not case-sensitive, as in ABAP Editor. When an internal table is specified, the syntax can be distributed across multiple rows.

If expr_syntax is initial when the statement is executed, the change expression is ignored.

Security Note

If used wrongly, dynamic programming techniques can present a serious security risk. Any dynamic content that is passed to a program from the outside must be checked thoroughly or escaped before being used in dynamic statements. This can be done using the system class CL_ABAP_DYN_PRG or the predefined function escape. See SQL Injections Using Dynamic Tokens.

Note

If expr_syntax is an internal table with a header line, the table body is evaluated and not the header line.