Insertar un valor en una columna de Id. global o GUID en DB2 con SQL

Los tipos de datos de Id. global y GUID almacenan cadenas de texto de estilo de registro que están compuestas por 36 caracteres encerrados entre paréntesis. Estas cadenas únicamente identifican una entidad o fila de tabla dentro de una geodatabase y en todas las geodatabases. Los Id. globales se usan para mantener la singularidad de los registros en réplicas de geodatabase unidireccionales y bidireccionales y en los datos no versionados que se utilizan en los mapas sin conexión. Los GUID se pueden agregar a cualquier tabla.

Si la tabla que desea editar participa en la replicación o en mapas sin conexión, o contiene una columna de GUID, debe insertar un valor único en la columna de Id. global o GUID cuando inserte un registro nuevo en la tabla con SQL. Para ello, puede usar la función sde.next_globalid.

Al editar una tabla no versionada que no esté habilitada para archivado, utilice la función para insertar el Id. directamente en la tabla. Al editar una tabla no versionada que esté habilitada para archivado, utilice la función para insertar el Id. en la vista de archivo de la tabla. Al editar una tabla versionada, utilice la función para insertar un valor en la vista versionada de la tabla.

Pasos:
  1. Inicie sesión en la base de datos desde una ventana SQL como usuario con privilegios para editar la tabla.

    Si está editando a través de una vista versionada o de archivo, el usuario debe tener también los privilegios necesarios para editar la vista.

  2. Cuando inserte un registro, utilice la función sde.next_globalid para insertar el próximo valor de Id. global. Dado que se trata de una tabla de geodatabase, también contiene un ObjectID. Use la función sde.next_rowid para insertar un valor también en el campo ObjectID.
    --Get next ObjectID
    CALL sde.next_rowid('JASON', 'ASSETS', ?, ?, ?);
    
    Value of output parameters
    
    Parameter Name :   O_ROWID
    Parameter Value :  49999
    
    Parameter Name :   O_MSGCODE
    Parameter Value :  0
    
    Parameter Name :   O_MESSAGE
    Parameter Value :  Procedure successfully completed.
    
    Return Status = 1
    
    --Insert record
    INSERT INTO jason.assets (objectid, asset_id, globalid) 
     VALUES (49999, 57, sde.next_globalid);
    
  3. Cuando haya terminado las modificaciones, guárdelas en la base de datos.

Temas relacionados

5/10/2014