Next_GlobalID
定义
Next_GlobalID 将注册到地理数据库的表作为输入参数,返回下一个 GlobalID 值。
使用 SQL 向表中插入一行记录时,可以使用此值。
添加 globalID 字段的目的是使表能够参与地理数据库复制。Next_GlobalID 函数不返回其他 GUID 字段的值。
使用 SQL 向表中插入一行记录时,可以使用此值。
如果输入表未注册到地理数据库,则会返回错误。

要在 PostgreSQL 中使用 Next_GlobalID 函数,必须在存储地理数据库的数据库中安装 PostgreSQL uuid-ossp contrib 模块。
要获取 SQL Server 数据库中的下一个 GlobalID 值,请使用 SQL Server newid() 函数。
语法
<geodatabase administrator schema>.next_globalid (<table owner>, <table name>)
在大多数地理数据库中,地理数据库管理员方案是 sde。但是,在 SQL Server dbo 方案地理数据库中,则为 dbo;而在 Oracle 用户方案地理数据库中,则为用户方案的名称。
返回类型
字符串
示例
下面是在支持的各种数据库中使用 NextGlobalID 函数的示例。
注册到地理数据库的表包含 ObjectID 列(RowID)。因此,当您将一条记录插入包含 GlobalID 列的地理数据库表时,还需要插入一个 RowID 值。
各种数据库示例会将记录插入由 buse 拥有的 siting 表中,并调用 Next_RowID 过程将值插入 ObjectID 字段,调用 Next_GlobalID 过程将值插入 GlobalID 字段。在 DB2 中,必须首先调用 Next_RowID 过程获取 ObjectID 字段的值,然后在插入语句中使用该值,该语句包括将值插入 GlobalID 字段的 Next_GlobalID 函数。
DB2
由于地理数据库包括非空 ObjectID 字段,因此,必须首先获取插入到该字段的值。在下面的示例中,将为 ObjectID 字段 (698) 获取下一 RowID 值,然后将一条记录插入到包括下一行 ID 值的表中,并使用 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.