✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
La sentencia INSERT
Permite introducir nuevos registros a una BD. Ejemplo:
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '21727679'.
wa_usuarios-nombre_ape = 'Juan Graco'.
wa_usuarios-estado_usu = 'A'.
INSERT into ztabla_usuarios values wa_usuarios.
Nota: Siempre después de un INSERT se debe preguntar por el SY-SUBRC. Si es cero, el registro se inserto correctamente, caso contrario, se produjo un error.
Si se desea introducir todos los registros de una tabla interna se debe hacer lo siguiente:
INSERT ztabla_usuarios FROM TABLE ti_usuarios.
Si existe algún registro en la BD con igual clave que un registro de la tabla interna se producirá un error de ejecución en el programa.
La sentencia UPDATE
Permite actualizar el contenido de uno o varios registros de una tabla BD. Ejemplo:
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '21727679'.
wa_usuarios-nombre_ape = 'Juan Graco'.
wa_usuarios-estado_usu = 'I'.
UPDATE ztabla_usuarios FROM wa_usuarios.
Nota: Después de un UPDATE se debe preguntar por el SY-SUBRC. Si es cero se actualizo correctamente, caso contrario, se produjo un error.
Si se quiere actualizar los registros de una tabla que cumplan determinada condición:
UPDATE ztabla_usuarios SET nombre_ape = 'Exequiel Fernandez'
WHERE dni = '23547312'.
Si se quiere actualizar todos los registros de una tabla a partir del contenido de una tabla interna:
UPDATE ztabla_usuarios FROM TABLE ti_usuarios.
La sentencia MODIFY
Permite modificar el contenido de uno o varios registros de una tabla BD. Ejemplo:
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '21727679'.
wa_usuarios-nombre_ape = 'Juan Graco'.
wa_usuarios-estado_usu = 'N'.
MODIFY ztabla_usuarios FROM wa_usuarios.
Nota: Después de un MODIFY se debe preguntar por el SY-SUBRC. Si es cero se modifico correctamente, caso contrario, se produjo un error.
Si se quiere modificar todos los registros de una tabla a partir del contenido de una tabla interna:
MODIFY ztabla_usuarios FROM TABLE ti_usuarios.
Nota: Si el registro que se intenta modificar, no existe en la tabla, este se creará.
La principal diferencia entre UPDATE y MODIFY se encuentra en que si ejecutamos la sentencia UPDATE y no se encuentra el registro que se desea actualizar entonces el SY-SUBRC será distinto de cero y se producirá un error.
En cambio si ejecutamos la sentencia MODIFY y el registro que se desea actualizar no existe entonces el SY-SUBRC no será distinto de cero y el registro se generará como una entrada más en la tabla.
La sentencia DELETE
Permite borrar el contenido de uno o varios registros de una tabla BD. Ejemplo:
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '21727679'.
wa_usuarios-nombre_ape = 'Juan Graco'.
wa_usuarios-estado_usu = 'N'.
DELETE ztabla_usuarios FROM wa_usuarios.
Nota: Después de un DELETE se debe preguntar por el SY-SUBRC. Si es cero se borro correctamente, caso contrario, se produjo un error.
Si se quiere borrar los registros de una tabla que cumplan determinada condición:
DELETE FROM ztabla_usuarios WHERE dni = '23547312'.
Si se quiere borrar 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 BD
COMMIT WORK realiza un update físico en la BD, haciendo irrevocable cualquier modificación en la BD.
Si se desea deshacer todas las operaciones realizadas sobre la BD desde el último COMMIT WORK, se realiza un ROLLBACK WORK. Ejemplo:
INSERT into ztabla_usuarios values wa_usuarios.
IF sy-subrc EQ 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
Nota: Es conveniente después de un INSERT, MODIFY, UPDATE o DELETE realizar un COMMIT WORK y ROLLBACK WORK.
 
 
 
Sobre el autor
Publicación académica de Miguel Mauricio Sierra Cardona, en su ámbito de estudios para la Carrera Consultor ABAP.
Miguel Mauricio Sierra Cardona
Profesión: Ingeniero de Desarrollo E Innovación - Colombia - Legajo: GN43E
✒️Autor de: 61 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Miguel Sierra