✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
Sentencia INSERT
Nos permite ingresar registros en una base de datos
completamos el área y luego.
INSERT INTO tabla VALUES área.
Luego de un Insert así como otras sentencias de acceso a base de datos, es conveniente verificar el estado de SY-SUBRC para saber si fue exitosa la ejecución de la sentencia.
Para insertar todos los registros de una tabla interna:
INSERT tabla FROM TABLE tabla_interna.
UPDATE
Para actualizar registros de la base.
completamos el área y luego.
UPDATE tabla FROM area.
Para actualizar un campo.
UPDATE tabla SET campo = valor WHERE condición.
Es importante que en la condición esté la clave de la tabla, esto mejorará la performance de la ejecución notoriamente.
Para actualizar todos los registros según una tabla interna:
UPDATE table FROM TABLE tabla_interna.
MODIFY
Modificar uno o varios registros de una base.
completamos el área y luego.
MODIFY tabla FROM área.
para modificar todos los registros a partir de una tabla interna:
MODIFY tabla FROM tabla_interna.
La diferencia con UPDATE es que si el registro que intenta modificar no existe, se creará.
No es necesario especificar el mandante ya que siempre se hace sobre el que está en uso.
Si lo quisiésemos cambiar deberíamos usar la cláusula CLIENT SPECIFIED
DELETE
Para borrar registros de la base
completamos el área y luego.
DELETE tabla FROM área.
DELETE FROM tabla WHERE condición.
La cantidad de registros borrada se guarda en SY-DBCNT.
Para borrar una tabla en base a una tabla interna:
DELETE tabla FROM TABLE tabla_interna.
Las sentencias Insert, Update y Delete deben usarse lo menos posible, se recomienda usar las transacciones standar para estas operaciones, BATCH INPUT, BAPIS, etc, ya que sería necesario conocer en profundidad la estructura de tablas para no cometer errores.
Uso de COMMIT WORK y ROLLBACK WORK
Para finalizar una unidad de procesamiento lógico LUW se debe ejecutar un COMMIT WORK, lo que hace un update físico de la base.
Si queremos deshacer las ejecuciones de Insert, Update, Delete hechas y que no llevaron el COMMIT WORK, debemos usar ROLLBACK WORK.
Si al verificar el estado de una sentencia con SY-SUBRC el mismo es distinto de 0, deberemos ejecutar el ROLLBACK WORK para que los datos queden consistentes o sea como estaban al principio de la LUW.
 
 
 
Sobre el autor
Publicación académica de Daniel Martinez Chaer, en su ámbito de estudios para la Carrera Consultor ABAP.
Daniel Martinez Chaer
Profesión: Analista Programador - Uruguay - Legajo: SK29Z
✒️Autor de: 76 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Con experiencia en sap fi y mm, migración desde sistema legacy, extracción de datos de la base oracle sap y generación de reportes.
Certificación Académica de Daniel Martinez