✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
INSERT, UPDATE, MODIFY, DELETE y actualizacion y recuperacion de la DB.
1. La sentencia insert: permite introducir nuevos registros a una base de datos, Por ejemplo, si siquieras introducir un nuevo registro en la tabla ZTABLA_USUARIOS hariamos lo siguiente:
* Inserto 1 registro en ZTABLA_USUARIOS
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.
Si queremos introducir todos los registro de una tabla interna haríamos los siguientes:
* Inserto en la ZTABLA_USUARIOS el contenido de TI_USUARIOS
INSERT ztabla_usuarios FROM TABLE ti_usuarios.
Si existe algún registro en la tabla don igual tabla produciría un error (SY-SUBRC distinto de cero).
2. La sentencia UPDATE: Permite actualizar el contenido de uno o varios registros de una tabla base de datos. Por ejemplo.
* Actualizo un registro de la tabla ZTABLA_USUARIOS
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.
Si quisiéramos actualizar los registros de la tabla ZTABLA_USUARIOS que cumplan determinada condición, haríamos lo siguiente:
* Actualizo el nombre y apellido del usuario con Dni 23547312
UPDATE ztabla_usuarios SET nombre_ape = 'Ezequiel Fernandez'
WHERE dni = '23547312'.
Si quisiéramos actualizar todos los registros de la tabla ZTABLA_USUARIOS a partir del contenido de una tabla interna haríamos lo siguiente:
* Actualizo ZTABLA_USUARIOS con la tabla interna TI_USUARIOS
UPDATE ztabla_usuarios FROM TABLE ti_usuarios.
3. La sentencia MODIFY: Permite modificar el contenido de uno o varios registros de una tabla. Por ejemplo para modificar un solo registro haríamos lo siguiente:
* Modifico un registro en ZTABLA_USUARIOS
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.
Si quisiéramos modificar todos los registro de la tabla ZTABLA_USUARIOS a partir del contenido de una tabla interna haríamos lo siguiente:
* Modifico los registros de ZTABLA_USUARIOS con TI_USUARIOS
MODIFY ztabla_usuarios FROM TABLE ti_usuarios.
Con la sentencia MODIFY, si el registro no existe entonces se creara.
4. La sentencia DELETE: Permite borrar el contenido de uno o varios registros de una tabla. Por ejemplo si quisiéramos borrar un registro haríamos lo siguiente:
* Borro un registro de la tabla ZTABLA_USUARIOS
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.
La cantidad de registro borrado se guardan en SY-DBCNT.
Si quisiéramos borrar los registro de la tabla ZTABLA_USUARIOS que cumplan con, la condición, haríamos lo siguiente:
* Borro de ZTABLA_USUARIOS el registro con dni = '23547312'
DELETE FROM ztabla_usuarios WHERE dni = '23547312'.
Si quisiéramos borrar todos los registro de la tabla ZTABLA_USUARIOS a partir del contenido de una tabla interna haríamos lo siguiente:
* Borro ZTABLA_USUARIOS con la tabla interna TI_USUARIOS
DELETE ztabla_usuarios FROM TABLE ti_usuarios.
En la Sentencia INSERT, UPDATE, MODIFY, DELETE si la variable del sistema SY-SUBRC, después de una de estas operaciones es distinta de cero entonces se produjo un error.
5. 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, que realiza un update fisico en la tabla , haciendo irrevocable cualquier modificaciones en la tabla.
Si deseamos deshacer toda las operaciones realizadas sobre la tabla desde él último COMMIT WORK realizamos un ROLLBACK WORK.
Veamos un ejemplo:
* Inserto en la ZTABLA_USUARIOS el contenido de TI_USUARIOS
INSERT into ztabla_usuarios values wa_usuarios.
IF sy-subrc EQ 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
Es conveniente, después de un INSERT, UPDATE, MODIFY, DELETE realizar un COMMIT WORK y ROLLBACK WORK.
 
 
 
Sobre el autor
Publicación académica de Edward Henry Rosario Piezal, en su ámbito de estudios para la Carrera Consultor ABAP.
Edward Henry Rosario Piezal
Profesión: Ingeniero en Sistema - Republica Dominicana - Legajo: FM99R
✒️Autor de: 68 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Edward Rosario