Was ist eine objectID?
Als "ObjectID" wird eine eindeutige Spalte vom Typ "Integer" ohne Nullwerte bezeichnet, die verwendet wird, um Zeilen in Tabellen in einer Geodatabase eindeutig zu identifizieren. ObjectIDs sind auf 32-Bit-Werte beschränkt, die einen Maximalwert von 2.147.483.648 speichern.
Tabellen, die mit ArcGIS oder außerhalb von ArcGIS erstellt und dann bei ArcSDE und der Geodatabase registriert werden, müssen eine objectID-Spalte enthalten, die von der Geodatabase verwaltet wird. Die ObjectID wird von ArcGIS für Operationen wie das Scrollen und Anzeigen von Auswahlsätzen und das Ausführen von Identifizierungsvorgängen an Features verwendet.
Da es bei einem Großteil der ArcGIS Desktop-Funktionalität erforderlich ist, dass die objectID eindeutig ist, sollte beim direkten Arbeiten mit der Datenbank mit Vorsicht vorgegangen werden, sodass es zu keinen doppelten objectIDs kommt. Wenn Sie z. B. Sichten mit einer Eins-zu-Vielen-Beziehung erstellen, besteht die Möglichkeit, dass ObjectIDs dupliziert werden. Dies kann bei Funktionen in ArcGIS Desktop zu inkonsistentem Verhalten führen.
Es gibt drei Möglichkeiten, einer Tabelle eine qualifizierende objectID hinzuzufügen:
- Jeder mit ArcGIS erstellten Tabelle wird automatisch eine Geodatabase-verwaltete objectID-Spalte hinzugefügt.
- Sie legen eine als objectID-Feld zu verwendende Spalte fest, wenn Sie eine Tabelle mit dem Befehl "sdetable" oder "sdelayer" bei ArcSDE registrieren. Sie können eine vorhandene qualifizierende Tabelle als objectID angeben oder einen Namen für eine neue objectID-Spalte festlegen. Wenn Sie einen neuen Spaltennamen angeben, fügt ArcSDE der Tabelle eine eindeutige Nicht NULL-Ganzzahlspalte mit diesem Namen hinzu. Beim Festlegen der als objectID zu verwendenden Spalte geben Sie gleichzeitig an, ob diese Spalte von ArcSDE oder von Ihnen (vom Benutzer) verwaltet werden soll. Hinweis:
Für die Geodatabase ist eine vom System verwaltete objectID erforderlich. Daher sollten Sie die von ArcSDE verwaltete objectID registrieren, wenn Sie die Tabelle auch bei der Geodatabase registrieren. Wenn Sie stattdessen eine vom Benutzer verwaltete objectID definieren, fügt die Geodatabase eine neue ObjektID-Spalte hinzu, wenn Sie die Tabelle anschließend bei der Geodatabase registrieren. Diese neue objectID-Spalte ersetzt die Spalte, die Sie beim Registrieren der Tabelle bei ArcSDE angegeben haben. Außerdem wird der Datentyp der benutzerdefinierten ObjectID von "ObjectID" zu "Long Integer" geändert.
- Wenn Sie eine Tabelle ohne qualifizierende Spalte bei einer Geodatabase registrieren, fügt die Geodatabase der Tabelle eine weitere, den Anforderungen an eine ObjectID entsprechende Spalte hinzu. Wenn die Tabelle bereits eine Spalte mit dem Namen "objectID" enthält, fügt die Geodatabase eine Spalte mit dem Namen "OBJECTID_" hinzu.