Actualizar columnas

Esta lección trata de enseñarle cómo utilizar la sentencia UPDATE para actualizar los registros de una tabla de base de datos sin tener que utilizar un área de trabajo o una tabla interna.

  • Sintaxis

UPDATE target SET set_expression [WHERE sql_cond]

  • Efecto

Después de la adición SET, los cambios se especifican en una lista de expresiones de cambio en set_expression. La adición WHERE utiliza una expresión lógica sql_cond para definir en qué filas de la tabla de base de datos se ejecutan los cambios. Si no se especifica ninguna condición WHERE, se cambian todas las filas de la tabla de base de datos.
El contenido de los campos de clave primaria solo se puede cambiar si la tabla de base de datos respectiva no está vinculada con una ayuda de búsqueda y si no se accede a las tablas de agrupación. Si estos cambios crean una fila que provoca entradas dobles en la clave primaria o un índice secundario único de la tabla de la base de datos, entonces no se cambian las filas y la variable del sistema SY-SUBRC se establece en 4.

  • Aplicación práctica

En un programa ejecutable realizamos la actualización del campo CURRCODE en la tabla de base de datos ZSCARRSA00001 para las compañías aéreas LH – Lufthansa y NG – Lauda Air con el nuevo valor USD para la moneda.

  1. Implementamos el código fuente.
  2. Ejecutamos el programa.01 44
  3. Visualizamos los registros actualizados en la tabla de base de datos utilizando la transacción del diccionario de datos SE11. 02 41Como puede ver con la adición SET no necesitamos un área de trabajo para actualizar un registro o una tabla interna para actualizar múltiples registros. Con esta opción modificamos el contenido de todos los registros que cumplen la condición del WHERE. Le aconsejamos utilizar esta sentencia filtrando en el WHERE con los campos que forman la clave ya que altera el contenido de todos los registros que cumplen la condición.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *