Next_GlobalID

Définition

La fonction Next_GlobalID utilise une table enregistrée avec la géodatabase comme paramètre en entrée et renvoie la prochaine valeur GlobalID.

Vous pouvez utiliser cette valeur lorsque vous insérez une ligne dans la table en utilisant le langage SQL.

Le champ globalID est ajouté pour que la table puisse participer à la réplication de la géodatabase. La fonction Next_GlobalID ne renvoie pas les valeurs des autres champs GUID.

Vous pouvez utiliser cette valeur lorsque vous insérez une ligne dans la table en utilisant le langage SQL.

Une erreur est renvoyée si la table en entrée n'est pas enregistrée avec la géodatabase.

RemarqueRemarque :

Pour utiliser la fonction Next_GlobalID dans PostgreSQL, vous devez avoir installé le module contrib uuid-ossp de PostgreSQL dans la base de données dans laquelle la géodatabase est stockée.

Pour obtenir la prochaine valeur GlobalID dans une base de données SQL Server, utilisez la fonction newid() de SQL Server.

Syntaxe

<geodatabase administrator schema>.next_globalid (<table owner>, <table name>)

Dans la plupart des géodatabases, la structure de l'administrateur de géodatabase est la structure sde. Cependant, dans les géodatabases de structure dbo de SQL Server la structure est dbo et dans les géodatabases de structure utilisateur Oracle, la structure est le nom de la structure utilisateur.

Type de retour

Chaîne

Exemples

Les exemples suivants illustrent l'utilisation de la fonction NextGlobalID dans chaque base de données où elle est prise en charge.

Les tables qui sont enregistrées avec la géodatabase contiennent des colonnes ObjectID (identifiants RowID). Par conséquent, lorsque vous insérez un enregistrement dans une table de géodatabase contenant une colonne GlobalID, vous devez également insérer une valeur RowID.

L'exemple fourni pour chaque table de données insère un enregistrement dans la table sitings détenue par buse, et appelle la procédure Next_RowID pour insérer une valeur dans le champ ObjectID, puis la procédure Next_GlobalID pour insérer une valeur dans le champ GlobalID. Dans DB2, vous devez d'abord appeler la procédure Next_RowID pour obtenir une valeur pour le champ ObjectID, puis utiliser cette valeur dans l'instruction d'insertion qui inclut une fonction Next_GlobalID permettant d'insérer une valeur dans le champ GlobalID.

DB2

Etant donné que les tables de géodatabase incluent un champ ObjectID non nul, vous devez d'abord obtenir une valeur qui sera insérée dans ce champ. Dans l'exemple suivant, la prochaine valeur RowID est obtenue pour le champ ObjectID (698), puis un enregistrement est inséré dans la table. Cet enregistrement inclut la prochaine valeur RowID et la fonction Next_GlobalID permettant d'insérer une valeur dans le champ GlobalID.

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 INTO buse.sitings (objectid, globalid, mon_type)
VALUES
(698, sde.next_globalid, 'golem');

The SQL command completed successfully

Oracle

INSERT INTO wuse.sitings (objectid, globalid, mon_type)
VALUES
(sde.gdb_util.next_rowid('WUSE', 'SITINGS'), sde.gdb_util.next_globalid, 'golem');

1 row created

PostgreSQL

INSERT INTO wuse.sitings (objectid, globalid, mon_type)
VALUES
(sde.next_rowid('wuse', 'sitings'), sde.next_globalid(), 'golem');

Query returned successfully: 1 row affected, 109 ms execution time.
9/12/2013