Actualización de la Declaración en ABAP no funciona

Tengo una UPDATE declaración en ABAP que se parece a :

UPDATE zicstt099 FROM TABLE lt_zicstt099

La Actualización está fallando cada vez con sy-subrc eq 4.

La Tabla de base de datos ZICSTT099 tiene tres claves principales : WEB_USER_ID & EMAIL_ID junto con MANDT campo.

Estoy tratando de cambiar la EMAIL_ID valor, pero no es lo mismo que se está actualizando.

Amablemente ayuda.

OriginalEl autor Rohit Sinha | 2011-08-30

4 Kommentare

  1. 8

    Usted no puede cambiar los campos de la clave primaria mediante la UPDATE <target> FROM <wa>. y UPDATE <target> FROM TABLE <itab>. declaraciones, ya que con el uso de la clave primaria para buscar el archivo(s) que debe actualizar.

    Utilizar el UPDATE <target> SET <set1> ... WHERE ... instrucción en su lugar.

    Usted puede encontrar los detalles aquí: http://help.sap.com/abapdocu_70/en/ABAPUPDATE_SOURCE.htm#&[email protected]@

    OriginalEl autor René

  2. 0

    No se puede «cambiar» la clave de los campos en bases de datos.
    Usted puede borrar su entrada original e insertar uno nuevo con otra clave. Pero no se puede cambiar de un campo clave. (Yo no puedo comprobar real, si modify está haciendo en su propio.

    Si tiene que cambiar una clave de campo, usted debe pensar acerca de su DB-definición.

    Más información sobre cómo cambiar la clave de campos:
    Podemos actualizar los valores de clave principal de una tabla?

    Esto es incorrecto, al menos en Open SQL. Consulte la documentación citado por René.

    OriginalEl autor knut

  3. 0

    Si sy-subrc = 4, entonces al menos una línea que no era capaz de ser modificado, ya sea porque no apropiado de la línea fue encontrado, o porque el cambio generaría una línea que lleva el doble de entradas en la clave principal o única de un índice secundario en la tabla de base de datos.

    La declaración de ACTUALIZACIÓN de los conjuntos de sy-dbcnt para el número de líneas cambiadas.

    OriginalEl autor parachute

  4. -1

    hola he tratado de crear la tabla con sus llaves como se ha mencionado , es que recomendamos que utilice la sintaxis siguiente

    update lt_zicstt099 set email_id = 'some value' where WEB_USER_ID = 'some web id'.
    

    Para comprobar si se actualiza la tabla puede utilizar sy-dbcnt para saber el número de líneas actualizado.
    si todavía se enfrentan a problemas por favor deje un comentario debajo de

    OriginalEl autor Achuth hadnoor

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea