🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE

ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE

ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE

INSERT

Se utiliza para insertar líneas en una tabla interna antes de una posición determinada.

Sintaxis: INSERT [ <área-trabajo> INTO | INITIAL LINE INTO ] [ INDEX <índice> ].

Con <área-trabajo> INTO se especifica el área de trabajo que se va a insertar. Si se omite esta opción, el área de trabajo que se va a insertar será la asociada con la tabla interna. El significado de las cláusulas es el siguiente:

  • INITIAL LINE TO -> inserta una línea con los valores iniciales de cada campo.
  • INDEX -> Inserta una línea antes de la posición indicada en <índice> y la nueva tiene el índice <índice>.

Si la tabla tiene <índice> -1 entradas, la línea se insertara en la última posición. Si la tabla tiene menos de <índice> -1 posiciones, la línea no se insertara.

Si se produce algún error al insertar la línea, la variable SY-SUBRC valdrá 4, en caso contrario valdrá 0. Si la sentencia se utiliza sin la cláusula INDEX, sólo se podrá utilizar en un LOOP .. ENDLOOP. El sistema insertara la línea antes de la línea tratada en el bucle.

La sentencia INSERT puede ser utilizada para insertar una o varias líneas (a partir de una tabla interna) en una tabla de la base de datos. Si no sabemos si la clave primaria existe, se debe utilizar la sentencia MODIFY. Se puede utilizar una vista como especificación de tabla, siempre y cuando la vista haga referencia a una sola tabla.

UPDATE

Sentencia utilizada para modificar registros de una tabla de la base de datos.

Sintaxis: UPDATE { | () } [ CLIENT SPECIFIED ] [ FROM <área> ].

Con esta variante de la sentencia UPDATE semodifica una sola línea de la tabla especificada. El significado de la cláusula FROM es la siguiente:

  • FROM -> El área de trabajo <área> sobrescribe la línea de la tabla que tenga la misma clave primaria. La tabla debe estar declarada con la sentencias TABLES. Si no se especifica la cláusula FROM, será el contenido del área de trabajo de la propia tabla el que sobrescriba la línea de la tabla con la misma clave primaria. El área de trabajo <área> debe tener la misma longitud que el área de trabajo de la tabla. Para asegurarse de que el área de trabajo <área> tiene la misma estructura que el área de trabajo de la tabla, se suele declarar con la sentencia DATA (o TYPE) una estructura utilizando la cláusula LIKE.

Si la operación concluye satisfactoriamente, SY-SUBRC vale 0 y SY-DBCNT vale 1, en caso contrario SY-SUBRC vale 4 y SY-DBCNT vale 0. Se puede especificar el nombre de la tabla en tiempo de ejecución como veíamos en sentencias anteriores con la opción (). Con esta opción, la cláusula FROM es obligatoria y <área> no puede ser la propia área de trabajo de la tabla.

MODIFY

Se utiliza para sustituir líneas de una tabla interna.

Sintaxis: MODIFY [ FROM <área-trabajo> ] [ INDEX <índice> ].

El área de trabajo <área-trabajo> sustituye a la línea de la tabla interna.

  • En el caso de tablas internas con líneas de cabecera, la cláusula FROM es opcional.
  • Si se utiliza la cláusula INDEX, la línea que hay que reemplazar será la existente con el índice <índice>. Si el sistema puede realizar la modificación, la variable del sistema SY-SUBRC es 0. Si la tabla interna tiene menos líneas que las indicadas en <índice>, la modificación no se realiza y SY-SUBRC vale 4. Si no se utiliza la cláusula INDEX, la sentencia solo puede ser procesada en un bucle LOOP .. ENDLOOP. En este caso la línea que se modificara será la que se este tratando.

MODIFY { | () }[ CLIENT SPECIFIED ] [ FROM <área> ].

Sentencia utilizada para modificar o insertar registros de una tabla de la base de datos. Con esta sentencia se tienen dos posibilidades. Si la tabla de base de datos no tiene ninguna línea con la misma clave primera se inserta. En caso contrario se modifica. Por cuestiones de rendimiento se debe limitar su uso al máximo. Con <tabla> se especifica el nombre de la tabla de forma estática. Para especificar la tabla de forma dinámica se utiliza la opción (<tabla>).

  • Con la especificación dinámica, la cláusula FROM es obligatoria.

MODIFY { | () }[ CLIENT SPECIFIED ] [ FROM TABLE <área> ].

Esta sentencia modifica o inserta el contenido de área de trabajo <área> sobre la tabla de la base de datos. Las líneas de la tabla interna modifican las líneas de la tabla de la base de datos si la clave primera existe. Para el resto de entradas de la tabla interna, se añaden a la tabla. SY-SUBRC es siempre 0. SY-DBCNT toma el valor del número de entradas de la tabla interna.

Cuando se añaden entradas, la sentencia funciona como la sentencia INSERT y cuando se modifican entradas, las sentencias funciona como la sentencia MODIFY.

DELETE

Para borrar líneas de una tabla interna se cuenta con la sentencia DELETE. Varios formatos de la sentencia nos permiten borrar líneas de una forma diferente.

Sintaxis: DELETE <tabla>.

El sistema sólo puede procesar esta sentencia dentro de un bucle LOOP .. ENDLOOP. La sentencia DELETE borra la línea que se este tratando en el bucle.

DELETE <tabla> INDEX <índice>.

  • Con la cláusula INDEX, el sistema borra la línea con el índice <índice> en la tabla interna <tabla>. Después de borrar la línea, el índice de la siguiente línea es decrementado en 1. Si la operación es completada, la variable SY-SUBRC vale 0. Si la línea con el índice <índice> no existe, SY-SUBRC vale 4.

DELETE ADJACENT DUPLICATE ENTRIES FROM <tabla> [ COMPARING <c> ].

Esta sentencia borra todas las entradas duplicada adyacentes de una tabla interna. Dos líneas se consideran duplicadas si cumplen uno de los siguientes criterios de comparación:

  • Sin la cláusula COMPARING, el contenido de los campos claves estándar deben ser iguales.
  • Con la cláusula COMPARING con el formato siguiente: COMPARING <c1> <c2>.... El contenido de los campos (c1, c2 ....) debe ser igual. También se puede especificar el nombre de los campos que hay que comparar en tiempo de ejecución utilizando la siguiente sintaxis: (<campo>). La variable <campo> contiene el nombre de la variable que se va a comparar. Si en el momento de procesar la sentencia DELETE, <campo> está vacío, el sistema la ignora. Si contiene el nombre inválido, se produce un error en tiempo de ejecución.
  • Con la cláusula COMPARING con el siguiente formato: COMPARING ALL FIELDS, el contenido de todos los campos debe ser igual.

Si el sistema borra al menos una línea de la tabla la variable SY-SUBRC valdrá 0 si no borra ninguna línea, SY-SUBRC valdrá 4. Es recomendable que la tabla interna este ordenada antes de ejecutar esta sentencia

Actualización y recuperación de una base de datos

A veces es necesario asegurarse que los cambios en la base de datos se han realizado, antes de continuar con el proceso. Por el contrario, a veces es necesario deshacer algunos cambios realizados en la base de datos. Para confirmar los cambios realizados sobre la base de datos se utiliza la sentencia COMMIT WORK.

Sintaxis: COMMIT WORK [ AND WAIT ].

Para deshacer los cambios realizados en la base de datos se utiliza la sentencia ROLLBACK WORK. Estas sentencias tienen un papel importante en la programación de transacciones de diálogo. Con la cláusula AND WAIT, el programa se para hasta que la tarea de actualización termina. Si la actualización es satisfactoria, SY-SUBRC vale 0, en caso contrario, SY-SUBRC toma un valor distinto de 0.


 

 

 


Sobre el autor

Publicación académica de Sergio Armando Beltran Castaneda, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Master

Sergio Armando Beltran Castaneda

Profesión: Ingeniero de Sistemas con Especialización en Gerencia de Proyectos - Colombia - Legajo: WK55K

✒️Autor de: 70 Publicaciones Académicas

🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Presentación:

Soy ingeniero de sistemas desde hace mas de 10 años y quiero enfocarme en el mundo sap, iniciando en el lenguaje abap, con miras a ampliar mi conocimiento profesional y laboral.

Certificación Académica de Sergio Beltran

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "Las sentencias INSERT, UPDATE, MODIFY y DELETE" de la mano de nuestros alumnos.

SAP Master

Sentencia INSERT sentencia para insertar registros en una tabla interna o base de datos en SAP INSERT INTO VALUES siempre despues de un insert se debe preguntar por el sy-subrc si es cero el registro se inserto sino hay error . INSERT FROM TABLE SENTENCIA UPDATE para actualizar registros de una tabla base de datos SAP UPDATE FROM SIEMPRE DE UN UPDATE SE DEBE PREGUNTAR EL SY-SUBRC UPDATE FROM TABLE SENTENCIA MODIFY para modificar datos en tablas internas o tablas base de datos en SAP MODIFY FROM siempre despues de un MODIFY se debe preguntar por sy-subrc. MODIFY FROM TABLE SI EL REGISTRO NO EXISTE EN LA TABLA ESTE SE CREA AUTOMATICAMENTE SENTENCIA DELETE permite borrar el contenido de uno o varios registros de una tabla base de datos DELETE...

Acceder a esta publicación

Creado y Compartido por: Andres Felipe Escobar Lopez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

LA SENTENCIA INSERT: Introduce nuevos registros a una tabla. INSERT INTO ztabla_usuarios VALUES wa_usuarios. (pasa los valores de la estructura wa_usuarios a ztabla_usuarios, se entiende que solo es un registro a la vez). Para insertar toda la tabla (muchos registros) se usa: INSERT ztabla_usuarios FROM TABLE ti_usuarios. LA SENTENCIA UPDATE: Actualiza el contenido de los registros. UPDATE ztabla_usuarios FROM w_usuarios. UPDATE ztabla_usuarios SET nombre_ape = 'Pedro' WHERE dni = '3243'. para actualizar toda una tabla a partir de otra: UPDATE ztabla_usuarios FROM TABLE ti_usuarios. LA SENTENCIA MODIFY: Modifica el contenido de los registros de una base de datos. MODIFY ztabla:usuarios FROM wa. usuarios. para modificar el contenido a partir...

Acceder a esta publicación

Creado y Compartido por: Gerardo De La Rosa Rivera

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Sentencias INSERT, UPDATE, MODIFY, DELETE: INSERT: Permite introducir nuevos registros. UPDATE: Permite actualizar registros, si el registro que se quiere actualizar no existe, manda error. MODIFY: Permite modificar registros, si el registro que se quiere modificar no existe, este se creará. DELETE: Permite borrar registros. TIPS: Cuando actualizamos una base de datos, no es necesario especificar mandante, ya que SAP controla que siempre se procese el mandante en uso. Si queremos actualizar datos de otro mandante, utilizamos clausula CLIENT ESPECIFY. IMPORTANTE: Las instrucciones INSERT, DELETE, MOFIFY y UPDATE deben ser utilizadas lo menos posible, ya que siempre se deben modificar los datos mediante las transacciones...

Acceder a esta publicación

Creado y Compartido por: Calixto Gutiérrez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

1- La sentencia INSERT INSERT INTO ztabla_usuarios VALUES wa_usuarios. (Inserta 1 registro) INSERT ztabla_usuarios FROM TABLE ti_usuarios. (Inserta toda una Tabla Interna) NOTAS: El registro que se insertará debe tener como primer campo el MANDT (= sy-mandt). Se debe consultar por sy-subrc para saber si la inserción fue exitosa. Una clave igual daría error. 2- La sentencia UPDATE UPDATE ztabla_usuarios FROM wa_usuarios. (actualiza un registro) UPDATE ztabla_usuarios SET nombre_ape = 'Ezequiel Fernandez' WHERE dni = '23547312'. (actualiza los registros que cumplen la condición). UPDATE ztabla_usuarios FROM TABLE...

Acceder a esta publicación

Creado y Compartido por: Victor Norberto Levi

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

sentencia INSERT, UPDATE, MODIFY, DELETE, ACTUALIZACION Y RECUPERACION DE UNA BASE DE DATOS CON LAS SENTENCIAS COMMIT WORK Y ROLLBACK WORK

Acceder a esta publicación

Creado y Compartido por: Rainer Diaz

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

INSERT UPDATE MODIFY DELETE

Acceder a esta publicación

Creado y Compartido por: Christian Camilo Alzate Duque

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


INSERT UPDATE MODIFY DELETE ACTUALIZACION Y RECUPERACION DE LA BD INSERT: introducir nuevos registros a la base de datos. clear wa_usuarios. wa_usuarios-mandt = sy-mandt. wa_usuarios-dni = '212727679'. wa_usuarios = 'Juan Graco. wa_usuarios-estado_usu = 'A'. INSERT INTO ztabla_usuarios VALUES wa_usuarios. despues preguntar por SY-SUBRC si es igual a cero esta bien se inserto correctamente. para introducir todos los registros de una tabla interna INSERT ztabla_usuarios FROM TABLE ti_usuarios. ----------------------------------------------------------------------------------------- UPDATE: actualiza el contenido de uno o varoiso registros de una tabla base de datos clear wa_usuarios. wa_usuarios-mandt = sy-mandt. wa_usuarios-dni =...

Acceder a esta publicación

Creado y Compartido por: Oscar Guillermo Rodriguez Villate / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

1. INSERT CLEAR wa_usuarios. wa_usuarios-mandt = sy-mandt. wa_usuarios-dni = '21122'. wa_usuarios-nombre_ape = 'Juan Graco'. wa_usuarios-estado_usu = 'A'. INSERT INTO ztabla_usuarios values wa_usuarios. Todos los registro de una tabla interna. INSERT ztabla_usuarios FROM TABLE ti_usuarios. 2. UPDATE UPDATE INTO ztabla_usuarios values wa_usuarios. Con condicion. UPDATE ztabla_usuarios SET nombre_ape = 'Nuevo nombre' WHERE dni = '123'. Actualizar todos los registros a partir de una tabla interna. UPDATE ztabla_usuarios FROM TABLE ti_usuarios. 3. MODIFY MODIFY ztabla_usuarios FROM wa_usuarios. Todos los registros MODIFY ztabla_usuarios FROM TABLE ti_usuarios. 4. DELETE DELETE ztabla_usuarios FROM wa_usuarios....

Acceder a esta publicación

Creado y Compartido por: Calixto Saldarriaga

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

INSERT: permite introducir nuevos registros a una base de datos. Después de un iNSERT se debe preguntar por el SY-SUBRC. UPDATE: permite actualizar el contenido de uno o varios registros de una tabla base de datos. MODIFY: permite modificar el contenido de uno ovarios registros de una tabla base de datos. Si el registro que se intentó modificar no existe en la tabla, este se creará. DELETE: permite borrar el contenido de uno o varios registros de una tabla base de datos. SY-DBCNT: guarda la cantidad de registros...

Acceder a esta publicación

Creado y Compartido por: Roxana Solis Ramirez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Lección: INSERT, UPDATE, MODIFY, DELETE y actualización y recuperación de la BD 1. La sentencia INSERT La sentencia INSERT permite introducir nuevos registros a una base de datos. Ej. INSERT into ztabla_usuarios values wa_usuarios. Siempre después de un INSERT se debe preguntar por el SY-SUBRC, si es cero. el registro se insertó correctamente, caso contrario, se produjo un error y el registro no se insertó. Si quisiéramos introducir los registros de una tabla interna haríamos lo siguiente: INSERT ztabla_usuarios FROM TABLE ti_usuarios. Si existe algún registro con igual clave se producirá un error. 2. La sentencia UPDATE Permite actualizar el contenido de una tabla . UPDATE...

Acceder a esta publicación

Creado y Compartido por: Pedro Alejandro Arroyo Gutierrez

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!