Next_GlobalID
Определение
Next_GlobalID получает в качестве входного параметра таблицу, зарегистрированную в базе геоданных, и возвращает следующее значение GlogalID.
Вы можете использовать это значение при добавлении строки в таблицу с помощью SQL.
Поле globalID добавляется, чтобы позволить таблице участвовать в репликации базы геоданных. Функция Next_GlobalID не возвращает значения для других полей GUID.
Вы можете использовать это значение при добавлении строки в таблицу с помощью SQL.
Если входная таблица не зарегистрирована в базе геоданных, будет возвращена ошибка.

Чтобы использовать функцию Next_GlobalID в PostgreSQL, вы должны установить модуль PostgreSQL uuid-ossp contrib в ту базу данных, где хранится ваша база геоданных.
Чтобы получить следующее значение GlobalID в базе данных SQL Server, используйте функцию SQL Server newid().
Синтаксис
<geodatabase administrator schema>.next_globalid (<table owner>, <table name>)
В большинстве баз геоданных, схемой администратора базы геоданных является sde. Однако для баз геоданных с dbo-схемой в SQL Server это dbo, а для баз геоданных с пользовательской схемой в Oracle - это имя пользовательской схемы.
Тип возврата
Строка
Примеры
Следующие примеры демонстрируют использование функции NextGlobalID в базах данных, в которых это поддерживается.
Таблицы, которые зарегистрированы в базе геоданных, содержат столбцы ObjectID (RowID). Поэтому, когда вы добавляете запись в таблицу базы геоданных, содержащую столбец GlobalID, то вы также должны добавить значение RowID.
Пример для каждой базы данных добавляет запись в таблицу sitings, владельцем которой является buse, и вызывает процедуру Next_RowID, чтобы добавить значение в поле ObjectID, и процедуру Next_GlobalID, чтобы добавить значение в поле GlobalID. В DB2 вам необходимо сначала вызвать процедуру Next_RowID, чтобы получить значение для поля ObjectID, а затем использовать это значение в выражении insert, включая процедуру Next_GlobalID, чтобы добавить значение в поле GlobalID.
DB2
Поскольку таблицы базы геоданных содержат непустое поле ObjectID, вам необходимо сначала получить значение, которое будет добавлено в это поле. В приведенном примере, следующее значение RowID получено для поля ObjectID (698), затем запись со следующим значением RowID добавлена в таблицу, и функция Next_GlobalID использована для того, чтобы добавить значение в поле 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.