✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
Sentencias bases de datos:
INSERT:
Permite introducir nuevos registros a una base de datos.
------------------------------------------------------------------------------------------------
Estructura:
INSERT INTO <tabla> VALUES <objeto origen>.
------------------------------------------------------------------------------------------------
Ejemplo:
CLEAR wa_usuarios.
wa_usuarios-mandt = SY-MANDT.
wa_usuarios-dni = '21563214'.
wa_usuarios-nombre_ape = 'Juan Graco'.
wa_usuarios-estado_usu = 'A'.
INSERT INTO ztabla_usuarios VALUES wa_usuarios.
------------------------------------------------------------------------------------------------
Siempre después de un INSERT se debe consultar el valor de SY-SUBRC.
En caso de ser cero, se habrá insertado correctamente el registro, caso contrario, se produjo un error.
SY-SUBRC también será distinto de cero si se intenta insertar un registro que posea la misma clave que un registro de la base de datos.
------------------------------------------------------------------------------------------------
Si queremos insertar, por ejemplo, todos los registros de una tabla interna:
INSERT ztabla_usuarios FROM TABLE ti_usuarios.
------------------------------------------------------------------------------------------------
UPDATE:
Permite actualizar el contenido de uno o varios registros de una tabla base de datos.
------------------------------------------------------------------------------------------------
Estructura:
UPDATE <tabla> FROM <objeto origen>.
------------------------------------------------------------------------------------------------
Ejemplo:
CLEAR wa_usuarios.
wa_usuarios-mandt = SY-MANDT.
wa_usuarios-dni = '21953214'.
wa_usuarios-nombre_ape = 'Juan Graco'.
wa_usuarios-estado_usu = 'I'.
UPDATE ztabla_usuarios FROM wa_usuarios.
------------------------------------------------------------------------------------------------
Siempre después de un UPDATE se debe consultar el valor de SY-SUBRC.
En caso de ser cero, se habrá actualizado correctamente el registro, caso contrario, se produjo un error.
------------------------------------------------------------------------------------------------
Si queremos actualizar, por ejemplo, los registros de una tabla que cumplan determinada condicion:
UPDATE ztabla_usuarios SET nombre_ape = 'Ezequiel Fernandez' WHERE dni = '25634895'.
Es recomendable utilizar la clave de la tabla como condición para que la instrucción no demore demasiado.
------------------------------------------------------------------------------------------------
Si queremos actualizar, por ejemplo, todos los registros de una tabla a partir del contenido de una tabla interna:
UPDATE ztabla_usuarios FROM TABLE ti_usuarios.
------------------------------------------------------------------------------------------------
MODIFY:
Permite modificar el contenido de uno o varios registros de una tabla base de datos.
------------------------------------------------------------------------------------------------
Estructura:
MODIFY <tabla> FROM <objeto origen>.
------------------------------------------------------------------------------------------------
Ejemplo:
CLEAR wa_usuarios.
wa_usuarios-mandt = SY-MANDT.
wa_usuarios-dni = '28624214'.
wa_usuarios-nombre_ape = 'Juan Graco'.
wa_usuarios-estado_usu = 'N'.
MODIFY ztabla_usuarios FROM wa_usuarios.
------------------------------------------------------------------------------------------------
Siempre después de un MODIFY se debe consultar el valor de SY-SUBRC.
En caso de ser cero, se habrá modificado correctamente el registro, caso contrario, se produjo un error.
En el caso de que el registro que se intenta modificar no exista, este se creará.
------------------------------------------------------------------------------------------------
Si queremos modificar, por ejemplo, todos los registros de una tabla a partir de una tabla interna:
MODIFY ztabla_usuarios FROM TABLE ti_usuarios.
------------------------------------------------------------------------------------------------
DELETE:
Permite borrar el contenido de unos o varios registros de un tabla base de datos.
------------------------------------------------------------------------------------------------
Estructura:
DELETE <tabla> FROM <objeto origen>.
------------------------------------------------------------------------------------------------
Ejemplo:
CLEAR wa_usuarios.
wa_usuarios-mandt = SY-MANDT.
wa_usuarios-dni = '29632484'.
wa_usuarios-nombre_ape = 'Juan Graco'.
wa_usuarios-estado_usu = 'N'.
DELETE ztabla_usuarios FROM wa_usuarios.
------------------------------------------------------------------------------------------------
Siempre después de un DELETE se debe consultar el valor de SY-SUBRC.
En caso de ser cero, se habrá eliminado correctamente el registro, caso contrario, se produjo un error.
La cantidad de registros borrados se guarda en SY-DBCNT.
------------------------------------------------------------------------------------------------
Si queremos eliminar, por ejemplo, los registros de una tabla que cumplan determinada condición:
DELETE FROM ztabla_usuarios WHERE dni = '21657295'.
------------------------------------------------------------------------------------------------
Si queremos eliminar, por ejemplo, todos los registros de una tabla a partir del contenido de una tabla interna:
DELETE ztabla_usuarios FROM TABLE ti_usuarios.
------------------------------------------------------------------------------------------------
Actualización y recuperación de una base de datos:
Para finalizar una unidad de procesamiento lógico (LUW) de base de datos se utiliza un COMMIT WORK.
Esto realiza un update físico en la base de datos, haciendo IRREVOCABLE cualquier modificación en la base de datos.
Si deseamos deshacer todas las operaciones realizadas desde el ultimo COMMIT WORK, realizamos un ROLLBACK WORK.
------------------------------------------------------------------------------------------------
Ejemplo:
INSERT INTO ztabla_usuarios VALUES wa_usuarios.
IF SY-SUBRC EQ 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
------------------------------------------------------------------------------------------------
Es conveniente realizar el código de ejemplo después de un INSERT, MODIFY, UPDATE o DELETE.
------------------------------------------------------------------------------------------------
 
 
 
Sobre el autor
Publicación académica de Martin Alejandro Goya, en su ámbito de estudios para la Carrera Consultor ABAP.
Martin Alejandro Goya
Profesión: Ingeniero en Computacion - Argentina - Legajo: CJ13E
✒️Autor de: 49 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Martin Goya