Définition d'un identifiant d'objet (ObjectID)
Le champ ObjectID affiche des nombres entiers, uniques et de valeur non nulle pour identifier de façon unique les lignes des tables dans une géodatabase. Un identifiant d'objet est limité aux valeurs 32 bits, qui stockent une valeur de 2 147 483 648.
Les tables créées par l'intermédiaire d'ArcGIS ou à l'extérieur d'ArcGIS, puis inscrites dans la géodatabase, contiennent automatiquement un champ ObjectID. Les valeurs de ce champ sont définies par ArcGIS. Les valeurs de la colonne ObjectID permettent à ArcGIS d'effectuer différentes opérations, telles que le défilement, l'affichage des jeux de sélection et l'identification des entités.
Comme la plupart des fonctionnalités d'ArcGIS for Desktop nécessitent l'unicité de l'identifiant d'objet, vous devez faire attention à ne pas dupliquer les identifiants d'objets lorsque vous travaillez directement dans la base de données en dehors d'ArcGIS. Par exemple, lors de la création de vues avec une relation un vers plusieurs, les identifiants d'objet peuvent être dupliqués. Ceci peut provoquer un comportement incohérent dans le fonctionnement d'ArcGIS for Desktop.
Quand est-ce qu'une valeur ObjectID est ajoutée à une table ?
Une valeur ObjectID peut être ajoutée à une table de plusieurs façons :
- Un champ ObjectID géré par ArcGIS est automatiquement ajouté à toute table créée à l'aide d'ArcGIS.
- Si vous inscrivez une table dans la géodatabase qui ne comporte pas de champ approprié, la géodatabase ajoute à la table un champ qui répond aux exigences d'une valeur ObjectID et le nomme OBJECTID. Si votre table contient déjà une colonne OBJECTID, la géodatabase ajoute une colonne nommée OBJECTID_1.
- Si vous inscrivez une table dans la géodatabase et que la table contient un champ approprié (entier, valeur non Null), la colonne existante peut être utilisée comme ObjectID. Remarque :
Si le champ approprié existant est conservé par la base de données (par exemple si une propriété Identity est présente dans SQL Server ou si une propriété Sequence est présente dans PostgreSQL), la propriété de maintenance de la base de données est supprimée du champ lorsque la table est inscrite dans la géodatabase. Après l'inscription dans la géodatabase, ArcGIS conserve les valeurs dans le champ ObjectID approprié.
- Si vous avez inscrit votre table dans ArcSDE à l'aide de la commande sdetable ou sdelayer, vous avez spécifié une colonne d'ID de ligne à ce moment. Vous avez spécifié également si cette colonne sera gérée par ArcSDE ou par vous (gérée par l'utilisateur).
Par la suite, lorsque vous inscrivez la table dans la géodatabase, l'ID de ligne de la table sera utilisé comme ObjectID si vous avez spécifié une colonne ID de ligne gérée par ArcSDE lors de l'inscription auprès d'ArcSDE. Par contre, si vous avec spécifié un ID de ligne par l'utilisateur, la géodatabase ajoute une nouvelle colonne ObjectID lorsque vous inscrivez par la suite la table dans la géodatabase. Cette nouvelle colonne ObjectID remplace la colonne que vous avez spécifiée lors de l'inscription de la table avec ArcSDE. Cette opération a également pour effet de transformer le type de données de votre ID de ligne défini par l'utilisateur en un entier long.
Par conséquent, si vous comptez également inscrire la table dans la géodatabase après l'avoir inscrite dans ArcSDE, vous devez inscrire l'ID de ligne comme étant géré par ArcSDE.