✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
SENTENCIA INSERT
Es posible inserter nuevos registros a nuestra base de datos mediante la sentencia INSERT, por ejemplo:
wa_usuarios-mandt = sy-mandt.
Wa_usuaruios-nombre_ape = ‘A’.
INSERT ztabla_usulg32f FROM ti_usuarios.
Si existe algún registro en la base de datos con igual clave de registro en la tabla interna se producirá un error SY_SUBRC distinto de cero.
UPDATE
La sentencia UPDATE permite actualizar el contenido de uno o varios de los registros de una tabla base de datos. Por ejemplo, si lo que se quiere hacer es actualizar un registro se haría de la siguiente manera:
‘I’.
UPDATE ztabla_usulg32f FROM wa_usuarios.
Después de realizar un UPDATE se debe preguntar por un SY-SUBRC.
Si quisiéramos actualizar los registros de la tabla ZTABLA_USUARIOS que cumplan determinada condición haríamos lo siguiente.
UPDATE ztabla_usulg32f SET nombre_ape = ‘Ezequiel Fernandez’
WHERE dni = ‘4631631463’.
Nota: Al utilizar la sentencia UPDATE es importante que ingresemos la clave de la tabla como condición de la actualización. En caso de no hacerlo es probable que la actualización tarde más tiempo.
Si lo que deseamos es actualizar todos los registros de la tabla ZTABLA_USULG32F a partir del contenido de una tabla interna haríamos lo siguiente.
UPDATE ztabla_usualg3f FROM TABLE ti_usuarios.
MODIFY
La sentencia MODIFY permite modificar el contenido de un registro o más de una tabla base de datos, como en el siguiente ejemplo.
‘N’.
MODIFY ztabla_usulg32f FROM wa_usuarios.
También es recomendable hacer el uso de SY-SUBRC después de insertar la sentencia MODIFY.
Para modificar todos los registros de la tabla ZTABLA_USULG32F a partir del contenido de una tabla interna, se haría de la siguiente manera:
MODIFY ztabla_usulg32f FROM TABLE ti_usuarios.
Si el registro que se intenta modificar no ha sido previamente hecho en la tabla este se creará.
Al momento de impactar sobre una tabla base de datos no es necesario especificar el mandante ya que este control es realizado en forma automáticamente por SAP, y el que se elige por defecto es el que está en uso. Si lo que se quiere es controlar el mandante en una tabla base de datos utilizaremos la sentencia CLIENT SPECIFIED.
DELETE
Con esta sentencia es posible el registro de uno o varios registros de una tabla base de datos:
‘N’.
DELETE ztabla_usulg32f FROM wa_usuarios.
También es adecuado preguntar por el SY-SUBRC.
Si lo que se desea es borrar los registros de una tabla que cumplan con determinada condición, lo haríamos de la siguiente manera_
DELETE FROM ztabla_usulg32f WHERE dni = ‘46321456322’.
Si lo que deseamos es borrar todos los contenidos de una table base de datos, lo haremos así:
DELETE ztabla_usuarios FROM TABLE ti_usuarios.
Es importante tener en cuenta que estas instrucciones deben ser utilizadas lo menor posible, siempre lo mejor es utilizar las transacciones para modificar datos.
RECUPERACIÓN DE 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 físico en la base de datos, haciendo irrovocable cualquier modificación en la base de datos.
Pero si es necesario deshacer todas las operaciones realizadas desde el último COMMIT WORK se hace mediante la sentencia ROLLBACK WORK.
INSERT into ztabla_usulg32f wa_usuarios.
IF sy-subrc EQ = 0.
COMMIT WORK
ELSE.
ROLLBACK WORK.
ENDIF.
Es totalmente conveniente después de haber realizado cualquiera de estas sentencias de la Unidad realizer un COMMIT WORK Y ROLLBACK WORK.
 
 
 
Sobre el autor
Publicación académica de Jose Alberto Rivera Gonzalez, en su ámbito de estudios para la Carrera Consultor ABAP.
Jose Alberto Rivera Gonzalez
Profesión: Técnico Informático - Mexico - Legajo: LG32F
✒️Autor de: 102 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jose Rivera