¿Qué es un Id. de objeto?
Un Id. de objeto es un campo único de enteros no nulos que se utiliza para identificar de forma única las filas en las tablas de una geodatabase. Los Id. de objeto se limitan a valores de 32 bits que almacenan un máximo de 2.147.483.647.
Las tablas que se crean a través de ArcGIS o que se crean fuera de ArcGIS y luego se registran con la geodatabase, automáticamente tienen un campo ObjectID agregado a ellas. ArcGIS mantiene los valores de este campo. ArcGIS utiliza el Id. de objeto para hacer cosas como desplazar y visualizar conjuntos de selección y realizar operaciones de identificación en las entidades.
Dado que la mayor parte de la funcionalidad de ArcGIS for Desktop requiere que un Id. de objeto sea único, debe asegurarse de que los valores de los Id. de objeto no se duplican cuando se trabaja directamente con la base de datos fuera de ArcGIS. Por ejemplo, cuando crea vistas con una relación de uno a muchos, es posible que se dupliquen los ObjectID. Esto ocasiona un comportamiento incoherente en la funcionalidad de ArcGIS for Desktop.
¿Cuándo se agrega un Id. de objeto a una tabla?
Hay varias maneras de agregar un Id. de objeto a una tabla:
- Se agrega automáticamente un campo de Id. de objeto mantenido por ArcGIS a cualquier tabla creada con ArcGIS.
- Si en la geodatabase se registra una tabla que no tiene ningún campo que cumpla los requisitos, la geodatabase agrega a la tabla otro campo que sí cumple los requisitos de un Id. de objeto y le asigna el nombre OBJECTID. Si la tabla ya contiene una columna llamada OBJECTID, la geodatabase agrega una columna llamada OBJECTID_1.
- Si registra una tabla en la geodatabase y la tabla contiene un campo que cumpla los requisitos (entero, no nulo), se puede utilizar la columna existente como Id. de objeto. Nota:
Si la base de datos mantiene el campo calificado existente. Por ejemplo, si tiene una propiedad de identidad en SQL Server o una propiedad de secuencia en PostgreSQL, la propiedad de mantenimiento de la base de datos se retira del campo cuando la tabla se registra en la geodatabase. Una vez que se registra en la geodatabase, ArcGIS mantiene los valores en el campo Id. de objeto que cumple los requisitos.
- Si registró su tabla con ArcSDE utilizando el comando sdetable o sdelayer, especificó una columna de Id. de fila en ese momento. También especificó que usted (mantenida por el usuario) o ArcSDE deben mantener esa columna.
Cuando se registra posteriormente la tabla en la geodatabase, el Id. de fila de la tabla se utiliza para el Id. de objeto si se ha especificado una columna de Id. de fila mantenido por ArcSDE al registrarse en ArcSDE. Si, en cambio, especificó un Id. de fila mantenido por el usuario, la geodatabase agrega una nueva columna de objectID cuando registra la tabla con la geodatabase posteriormente. Esta nueva columna ObjectID sustituye a la columna que especificó cuando registró la tabla con ArcSDE. También cambia el tipo de datos del Id. de fila definido por el usuario a un entero largo.
Por lo tanto, si va a registrar la tabla con la geodatabase después de registrarla con ArcSDE, debe registrar el Id. de fila mantenido por ArcSDE.