Was ist eine Objekt-ID?
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 der Geodatabase registriert werden, wird automatisch ein ObjectID-Feld hinzugefügt. Die Werte in diesem Feld werden mit der Geodatabase verwaltet. 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 for Desktop-Funktionen 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 führt bei Funktionen in ArcGIS for Desktop zu inkonsistentem Verhalten.
Wann wird einer Tabelle eine ObjectID hinzugefügt?
Es gibt drei Möglichkeiten, wann einer Tabelle eine ObjectID hinzugefügt wird:
- Jeder mit ArcGIS erstellten Tabelle wird automatisch eine Geodatabase-verwaltete ObjectID-Spalte hinzugefügt.
- 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.
- Wenn Sie die Tabelle mit dem Befehl "sdetable" oder "sdelayer" bei ArcSDE registrierten, haben Sie zu diesem Zeitpunkt eine Zeilen-ID-Spalte angegeben. Ferner haben Sie angegeben, ob diese Spalte von ArcSDE oder Ihnen (dem Benutzer) verwaltet werden soll.
Wenn Sie die Tabelle anschließend bei der Geodatabase registrieren, wird die Zeilen-ID der Tabelle für die ObjectID in der Geodatabase verwendet, wenn Sie eine von ArcSDE verwaltete Zeilen-ID angegeben haben. Wenn Sie stattdessen eine vom Benutzer verwaltete Zeilen-ID angegeben haben, fügt die Geodatabase eine neue ObjektID-Spalte hinzu, wenn Sie die Tabelle anschließend bei der Geodatabase registrieren. Diese neue ObjektID-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.
Daher sollten Sie die von ArcSDE verwaltete Zeilen-ID registrieren, wenn Sie die Tabelle nach dem Registrieren bei ArcSDE bei der Geodatabase registrieren.