ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

Next_GlobalID

  • 定义
  • 语法
  • 返回类型
  • 示例

定义

Next_GlobalID 将注册到地理数据库的表作为输入参数,返回下一个全局 ID 值。

使用 SQL 将一行插入到表中时,可以使用此值。

添加全局 ID 字段的目的是使表能够参与地理数据库复制或离线制图。

如果输入表未注册到地理数据库,则会返回错误。

语法

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

在大多数地理数据库中,地理数据库管理员方案是 sde。但是,在 SQL Server dbo 方案地理数据库中,则为 dbo;而在 Oracle 用户方案地理数据库中,则为用户方案的名称。

返回类型

字符串

示例

下面是在支持的各种数据库中使用 Next_GlobalID 的示例。

各种数据库示例会将记录插入由 buse 拥有的 siting 表中,调用 Next_RowID 将值插入 ObjectID 字段,并调用 Next_GlobalID 将值插入全局 ID 字段。

Db2

由于地理数据库包括非空 ObjectID 字段,因此,必须首先获取插入到该字段的值。在下面的示例中,将为 ObjectID 字段 (698) 获取下一 RowID 值,然后将一条记录插入到包括下一 RowID 值的表中,并使用 Next_GlobalID 函数将值插入全局 ID 字段。

--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

可将 Next_GlobalID 工具包括在插入语句中插入下一可用 ID 值。以下示例也使用 Next_RowID 工具将值插入 ObjectID 字段,该值将显示在所有地理数据库表中并且必须进行填充。

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

可将 Next_GlobalID 函数包括在插入语句中插入下一可用 ID 值。以下示例也使用 Next_RowID 函数将值插入 ObjectID 字段,该值将显示在所有地理数据库表中并且必须进行填充。

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 和 Next_RowID 是存储过程,必须在 INSERT 语句外部运行才能获得下一 ID 值。它们都存储在地理数据库管理员方案中。在以下示例中,地理数据库管理员是 sde。这些存储过程返回的值将用于 INSERT 语句以更新 sitings 表。

--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'
 );
提示:

如果不希望在将 globalID 值插入表前获取下一 globalID 值,则可以直接在插入语句中使用 SQL Server newid() 函数,请参阅使用 SQL 将值插入 SQL Server 中的全局 ID 列。

相关主题

  • GlobalID_Name
  • 使用 SQL 将值插入到 Db2 中的全局 ID 或 GUID 列中
  • 使用 SQL 将值插入到 Oracle 中的全局 ID 或 GUID 列中
  • 使用 SQL 将值插入到 PostgreSQL 中的全局 ID 或 GUID 列中

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明