INSERT, UPDATE, MODIFY, DELETE y
actualización y recuperación de la BD
1|La sentencia INSERT
Permite utilizar nuevos registros a una BD.
Ej. Si queremos introducir un registo nuevo en la tabla ZTABLA_USUARIOS hacemos sig:
*Insert 1 registro en ZTABLE_USUARIOS
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '21727679'.
wa_usuarios-nombre_ape = 'Juan Greco'.
wa_usuarios-estado_usu = 'A'.
INSERT into ztabla_usuarios values wa_usuarios.
Siempre despues de un INSERT se debe preguntar por el SY-SUBRC.
Si es cero, el registro se insertó correctamente.
Si queremos introducir todos los registros de una tabla interna hacemos sig:
*Inseto en ZTABLA_USUARIOS el contenido de TI_USUARIOS
INSERT ztable_usuarios FROM TABBLE ti_usuarios.
Si exite un registro en BD con igual clave que un registro rn la tabla interna
se produce un error.
2| La sentencia UPDATE
Permite actualizar el contenido de uno o varios registros de una tabla de BD
Ej. Si actualizamos un registro de una tabla BD.
*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 Greco'.
wa_usuarios-estado_usu = 'I'.
MODIFY ztabla_usuarios FROM wa_usuarios.
Siempre despues de un MODIFY se debe preguntar por el SY-SUBRC.
Si es cero, el registro se actualizo correctamente.
Si actualizamos los registros de la tabla ZTABLA_USUARIOS que cumplan con determinada
condicion, hacemos lo sig:
*Actualizo el nombrey apellido del usuario con Dni 23547312
UPDATE ztabla_usuarios SET nombre_ape = 'Ezequiel Fernandez'
WHERE dni = '23547312'.
4| DELETE <tablaBD> FROM TABLE <tablaI>.
Es importante utilizar estas sentencias de manejo de la tabla de BD lo menor posible, es preferible hacerlo por medio de las transacciones estandar. No se conoce bien la compleja estructura de la BD de SAP y así evitamos inconsistencia.
5| Actualización y recuperación de una BD.
Para finalizar la LUW (Logical Unit of Work - Unidad lógica de trabajo) de la BD, se hace un COMMIT WORK (update físico a la BD) haciendo irrevocable cualquier modificación posterior.
Para deshacer las operaciones y volver al último COMMIT WORK realizado: ROLLBACK WORK.
INSERT INTO <tablaBD> VALUES <estructura>.
IF sy-subrc EQ 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.