什么是对象 ID (objectID)?
对象 ID (ObjectID) 是一个唯一值非空整型列,用于在地理数据库表中唯一地标识行记录。ObjectID 被限制为 32 位值,能存储的最大值为 2,147,483,648。
通过 ArcGIS 创建的表,或者在 ArcGIS 外部创建然后注册到 ArcSDE 和地理数据库的表,必须包含由地理数据库维护的 objectID 列。ArcGIS 将使用 objectID 执行一些操作,如滚动并显示选择集,以及对要素执行识别操作。

由于多数 ArcGIS Desktop 功能要求 ObjectID 具有唯一性,因此直接处理数据库时应谨慎,以避免 objectID 重复。例如,按照一对多的关系创建视图时,便可能会使 objectID 重复。从而导致 ArcGIS Desktop 功能的表现不一致。
可采用三种方法将合适的 objectID 添加到表中:
- 由地理数据库维护的 objectID 列自动添加到使用 ArcGIS 创建的任何表中。
- 使用 sdetable 或 sdelayer 命令将表注册到 ArcSDE 时,指定用作 objectID 字段的列。可指定现有的合适列为 objectID 列,或者为新的 objectID 列指定名称。如果指定新列名称,ArcSDE 将具有该名称的唯一非空整型列添加到表中。指定某列作为 objectID 列的同时,也指定了该列是由 ArcSDE 还是由您(用户)维护。
注:
地理数据库需要由系统维护的 objectID。因此,如果还要将表注册到地理数据库,应将 objectID 注册为由 ArcSDE 维护。或者,如果您定义了由用户维护的 objectID,当您随后将表注册到地理数据库时,地理数据库则添加新的 objectID 列。此新 objectID 列将取代您在将表注册到 ArcSDE 时指定的列。该列也将用户定义的 objectID 的数据类型从 objectID 更改为长整型。
- 如果将表注册到没有合适列的地理数据库中,地理数据库将向表中添加满足 objectID 要求的另一列。如果表已经包含名为 objectID 的列,地理数据库则添加名为 OBJECTID_ 的列。
7/10/2012