Definición
Next_GlobalID toma una tabla registrada en la geodatabase como parámetro de entrada y devuelve el siguiente valor de Id. global.
Puede utilizar este valor cuando inserta una fila en la tabla con SQL.
El campo de Id. global se agrega para permitir que la tabla participe en la replicación de la geodatabase o en la representación cartográfica sin conexión.
Se devuelve un error si la tabla de entrada no está registrada con la geodatabase.
Sintaxis
<geodatabase administrator schema>.next_globalid (<table owner>, <table name>)
En la mayoría de las geodatabases,el esquema del administrador de la geodatabase es sde. Sin embargo, en geodatabases de esquema dbo en SQL Server es dbo y en geodatabases de esquema de usuario en Oracle es el nombre del esquema del usuario.
Tipo de devolución
Cadena
Ejemplos
Los siguientes ejemplos ilustran el uso de la función Next_GlobalID en cada base de datos con la que es compatible.
El ejemplo para cada base de datos inserta un registro en la tabla de emplazamientos perteneciente a buse y llama al procedimiento Next_RowID para insertar un valor en el campo ObjectID y a Next_GlobalID para insertar un valor en el campo de Id. global.
Db2
Como las tablas de geodatabase incluyen un campo ObjectID no nulo, primero debe obtener un valor para insertar en ese campo. En el siguiente ejemplo, se obtiene el siguiente valor de RowID para el campo ObjectID (698) y luego se inserta en la tabla un registro que incluye el siguiente valor de RowID y la función Next_GlobalID para insertar un valor en el campo de Id. global.
--Get the next ObjectID value.
CALL sde.next_rowid('BUSE', 'SITINGS', ?, ?, ?);
Value of output parameters
Parameter Name : O_ROWID
Parameter Value : 698
Parameter Name : O_MSGCODE
Parameter Value : 0
Parameter Name : O_MESSAGE
Parameter Value : Procedure successfully completed.
Return Status = 1
--Insert the ObjectID from the previous statement to the objectid field.
--Use the Next_GlobalID function to insert a value to the globalid field.
INSERT INTO buse.sitings (objectid, globalid, mon_type)
VALUES (
698,
sde.next_globalid,
'golem'
);
The SQL command completed successfully
Oracle 11g
Puede incluir la utilidad Next_GlobalID en la declaración INSERT para insertar el siguiente valor de Id. disponible. En el siguiente ejemplo también se usa la utilidad Next_RowID para insertar un valor en el campo ObjectID, que está presente en todas las tablas de geodatabase y se debe llenar.
INSERT INTO buse.sitings (objectid, globalid, mon_type) VALUES ( sde.gdb_util.next_rowid('BUSE', 'SITINGS'), sde.gdb_util.next_globalid, 'golem' );
1 row created
PostgreSQL
Puede incluir la función Next_GlobalID en la declaración Insert para insertar el siguiente valor de Id. disponible. En el siguiente ejemplo también se usa la función Next_RowID para insertar un valor en el campo ObjectID, que está presente en todas las tablas de geodatabase y se debe llenar.
INSERT INTO buse.sitings (objectid, globalid, mon_type) VALUES ( sde.next_rowid('buse', 'sitings'), sde.next_globalid(), 'golem' );
Query returned successfully: 1 row affected, 109 ms execution time.
SQL Server
Next_GlobalID y Next_RowID son procedimientos almacenados, que se deben ejecutar fuera de la declaración INSERT para obtener los siguientes valores de Id. Ambos se almacenan en el esquema del administrador de la geodatabase. En el ejemplo siguiente, el administrador de la geodatabase es sde. Los valores devueltos por estos procedimientos almacenados se usan en la declaración INSERT para actualizar la tabla de emplazamientos.
--Get the next ObjectID value. DECLARE @oid int EXEC sde.next_rowid 'buse', 'sitings', @oid OUTPUT SELECT @oid "ObjectID value";
ObjectID value 98765
--Get the next global ID value. DECLARE @gid uniqueidentifier EXEC sde.next_globalid @gid OUTPUT SELECT @gid "ID value";
ID value 0D5D0605-8954-4A65-B86C-D2DA96C2D0C5
--Insert a row to the sitings table. INSERT INTO buse.sitings (objectid, globalid, mon_type) VALUES ( 98765, '0D5D0605-8954-4A65-B86C-D2DA96C2D0C5', 'golem'
);