✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
1. LA SENTENCIA INSERT
Esta sentencia permite introducir nuevos registros a la base de datos. Si quisiéramos introducir un nuevo registro en la tabla ZTABLA_USUARIOS haríamos lo siguiente
CLEAR wa_usuarios. "Limpiando la estructura
*Comienza la inserción
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.
Siempre después del INSERT se debe preguntar por el SY-SUBRC.
Si queremos introducir todos los registros de una tabla interna haríamos lo siguiente:
*Inserto en la ZTABLA_USUARIOS el contenido de TI_USUARIOS.
INSERT ztabla_usuarios FROM TABLE ti_usuarios.
En caso de que exista en la base de datos un registro con igual clave, en la tabla interna se producirá un error (SY-SUBRC != 0).
UPDATE
La sentencia UPDATE permite actualizar el contenido de uno o varios registros de una tabla base de datos. Ejemplo.
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '21727679'.
wa_usuarios-nombre_ape = 'Jua Graco'.
wa_usuarios-estado_usu = 'T'.
UPDATE ztabla_usuarios FROM wa_usuarios.
Tambien es buena practica preguntar por el SY-SUBRC después de un UPDATE.
Si queremos actualizar campos específicos que cumplan una determinada condición procederemos de la siguiente manera.
UPDATE ztabla_usuarios SET nombre_ape = 'Ezequiel Fernandez'
WHERE dni = '23547312'.
Para actualizar todos los registros de una tabla, a partir del contenido de una tabla interna procederíamos de la siguiente manera.
UPDATE ztabla_usuarios FROM TABLE ti_usuarios.
MODIFY
Sirve para modificar el contenido de uno o varios registros. por 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.
Es importante consultar el valor de SY-SUBRC luego de ejecutar la sentecia MODIFY.
Para modificar todos los registros de una tabla se procedería de la siguiente manera.
MODIFY ztabla_usuarios FROM TABLE ti_usuarios.
SI EL REGISTRO QUE SE INTENTA MODIFICAR NO EXISTE, ESTE SE CREARÁ.
DELETE.
Permite borrar el contenido de uno o mas registros de una tabla base de datos.
*Borrando un registro.
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.
*Borrando registros con una características en especifico.
DELETE FROM ztabla_usuarios WHERE dni = '23547312'.
*Borrando registros de una tabla a partir de una tabla interna.
DELETE ztabla_usuarios FROM TABLE ti_usuarios.
LA CANTIDAD DE REGISTROS BORRADOS SE GUARDA EN SY-DBCNT.
ACTUALIZACIÓN Y RECUPERACIÓN.
Para finalizar una unidad de procesamiento lógico LUW de base de datos se utiliza un COMMIT WORK. Esta sentencia realiza un update físico en la base de datos, haciendo irrevocable cualquier modificación en la base de datos.
Si queremos deshacer todas las operaciones realizadas sobre la base de datos desde el ultimo commit, se realiza un ROLLBACK WORK.
Por ejemplo.
INSERT into ztabla_usuarios values wa_usuarios.
IF sy-subrc EQ 0.
COMMIT WORK.
ELSE
ROLLBACK WORK.
ENDIF.
 
 
 
Sobre el autor
Publicación académica de Walter Giovanny Montoya García, en su ámbito de estudios para la Carrera Consultor ABAP.
Walter Giovanny Montoya García
Profesión: Administrador de Sistemas Informáticos - Colombia - Legajo: UX58H
✒️Autor de: 55 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado de los módulos:
Certificación Académica de Walter Montoya