✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
Unidad 3: Diccionario de datos.
Lección 7: Actualización y recuperación de la Base de Datos.
1.- INSERT. Permite introducir nuevos registros en una base de datos.
- Inserción desde un área de trabajo: INSERT INTO <nombre tabla> VALUES <nombre área de trabajo>
- Inserción desde tabla interna. Se insertan todas las filas de la tabla interna en la tabla de base de datos.
INSERT INTO <nombre tabla> FROM TABLE <nombre tabla interna>.
Después de un íinsert siempre debe validarse SY-SUBRC.
2.- UPDATE. Permite actualizar uno o mas registros de una tabla de base de datos.
- Actualización desde una área de trabajo: UPDATE <nombre tabla> FROM <área de trabajo>.
- Actualización condicionada: UPDATE <nombre tabla> SET <campo BD a módificar> WHERE <condición>.
Para optimizar el tiempo de ejecución de la actualización es conveniente que la condición sea la clave primaria completa de la tabla o una clave secundaria debidamente indexada.
- Actualización desde una tabla interna: UPDATE <nombre tabla> FROM TABLE <nombre tabla interna>.
3.- MODIFY. Permite modificar uno o varios registros de una tabla de base de datos.
- Modificación desde una área de trabajo. MODIFY <nombre tabla> FROM <área de trabajo>.
- Modificación desde una tabla interna. MODIFY <nombre tabla> FROM TABLE <tabla interna>.
Como siempre después de la ejecución de la sentencia debemos validar SY-SUBRC.
A diferencia de con UPDATE si la fila a insertar no existe en la tabla se creará como nueva.
Si queremos procesar datos de un mandante distinto de aquel en que estamos trabajando deberemos añadir a la instrucción que corresponda la cláusula CLIENT SPECIFIED.
4.- DELETE. Permite borrar el contenido de uno o varios registros de la base de datos.
- Borrado de un registro desde área de trabajo. DELETE <nombre de tabla> FROM <área de trabajo>.
- Borrado condicionado. DELETE FROM <nombre de tabla> WHERE <condición>.
- Borrado desde tabla interna. DELETE <nombre de tabla> FROM TABLE <tabla interna>
Como siempre después de la ejecución de la sentencia debemos validar SY-SUBRC. El número de registros borrados se almacena en la variable del sistema SY-DBCNT.
INSERT, UPDATE, MODIFY, y DELETE deben utilizarse lo menos posible contra tablas de la base de datos ya que pude generar inconsistencias con respecto a tablas relacionadas. Debe siempre optarse por técnicas mas seguras como CALL TRANSACTION, BAPI O BATCH-INPUT.
5.- Actualización y recuperación de una base de datos.
Con todas las instrucciones anteriores se realizan acciones virtuales.Para finalizar el procesamiento lógico de un LUW si queremos que se introduzcan cambios físicos en la base de datos. Debemos utilizar COMMIT WORK. Así mismo si queremos revertir los cambios efectuados desde el último COMMIT WORK tenemos la sentencia ROLLBACK. WORK.
Es conveniente hacer COMMIT WORK y ROLLBACK WORK según proceda después de un INSERT, UPDATE, MODIFY o DELETE.
Esto se hace con la siguiente validación:
IF sy-subrc = 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
Las variables del sistema solo se pueden modificar cuando debugamos porqué son variables de solo lectura.
 
 
 
Sobre el autor
Publicación académica de Francisco Compte Sanchez, en su ámbito de estudios para la Carrera Consultor ABAP.
Francisco Compte Sanchez
Profesión: Sap Business&integration Architect - España - Legajo: QQ38S
✒️Autor de: 105 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Consultor sap mm y sd con algún conocimiento abap a nivel de debug. quiero consolidar conocimientos técnicos para reforzar mi perfil profesional.
Certificación Académica de Francisco Compte