什么是对象 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