SQL-Zugriff auf Enterprise-Geodatabase-Daten
Sie können das native SQL des Datenbankmanagementsystems verwenden, um Daten aus den Tabellen und Feature-Classes (im weiteren Verlauf zusammengefasst unter dem Begriff Datasets) in einer Enterprise-Geodatabase zu lesen. Außerdem können Sie mithilfe von SQL Werte in einfache Datasets, die in der Enterprise-Geodatabase gespeichert sind, einfügen, daraus entfernen oder aktualisieren.

Verwenden Sie SQL nicht, um das Schema von Datasets, die in der Enterprise-Geodatabase gespeichert sind, zu ändern.
Wenn Sie SQL für ein Geodatabase-Dataset ausführen, fragen Sie die Daten aus der Basis- oder Businesstabelle ab. Wenn das Dataset, das Sie abfragen, die folgenden Kriterien erfüllt, genügt eine Abfrage der Basistabelle, um die Daten anzuzeigen, und Sie können mithilfe von SQL Daten in der Basistabelle aktualisieren, Datensätze in die Basistabelle einfügen oder Datensätze daraus löschen:
- Das Dataset ist in keine Geodatabase-Funktionen wie Annotationen, Replikationen, Netzwerken, Parcel-Fabrics, Beziehungsklassen, Schematic-Datasets, Subtypes, Domänen, Terrains oder Topologien eingebunden.
- Das Dataset ist nicht als "versioniert" registriert.
- Für das Dataset wurde keine Archivierung aktiviert.
- Das Dataset enthält keine Spalte vom Typ binäre Geometriedaten oder ArcSDE-XML-Daten.
In den folgenden Abschnitten wird beschrieben, wie Sie vorgehen müssen, wenn das Dataset diese Kriterien nicht erfüllt.
Das Dataset ist in Geodatabase-Funktionen eingebunden
Wenn die Daten, auf die Sie zugreifen möchten, in Geodatabase-Funktionen eingebunden sind, müssen Sie die erforderlichen verknüpften Tabellen in Ihre Abfrage einbeziehen und mithilfe der richtigen Spalten verbinden, damit die gewünschten Informationen in den verknüpften Tabellen angezeigt werden.
Mit der Funktion Is_Simple können Sie ermitteln, ob das Dataset in Geodatabase-Funktionen eingebunden ist. Wenn mit "Is_Simple" der Wert False zurückgegeben wird, können Sie SQL-SELECT-Anweisungen für das Dataset ausführen. Bearbeiten Sie das Dataset jedoch nicht mit SQL.
Das Dataset ist als versioniert registriert
Wenn das Dataset als versioniert registriert ist, können Sie es mit einer versionierten Sicht abfragen und die Daten in der Basis-, Adds- sowie Deletes-Tabelle anzeigen, ohne komplexe Verknüpfungsanweisungen schreiben zu müssen. In ArcGIS 10.1 und höher wird eine versionierte Sicht erstellt, wenn Sie das Dataset als 'versioniert' registrieren. Sie können den SQL-Zugriff für Datasets, die vor ArcGIS 10.1 versioniert wurden oder deren Versionierung zu einem Zeitpunkt erfolgt ist, an dem Sie keine Berechtigung zum Erstellen einer Sicht hatten, über das Kontextmenü der Tabelle oder Feature-Class in ArcGIS for Desktop aktivieren. Dabei wird eine versionierte Sicht erstellt.
Wenn Sie ein versioniertes Dataset mit SQL bearbeiten möchten, müssen Sie dazu eine versionierte Sicht verwenden. Auf diese Weise werden die Änderungen in die Adds- und Deletes-Tabelle geschrieben und das ObjectID-Feld ausgefüllt, wenn die Datensätze eingefügt werden.
Mit der Funktion Is_Versioned können Sie ermitteln, ob das Dataset als versioniert registriert ist. Wenn dies der Fall ist, verwenden Sie die Funktion Version_View_Name, um den Namen der versionierten Sicht zu bestimmen.
Das Dataset ist nicht als versioniert registriert, die Archivierung wurde jedoch dafür aktiviert
Wenn das Dataset nicht als versioniert registriert, dafür jedoch die Archivierung aktiviert ist, wurde bei der Aktivierung der Archivierung eine Archivansicht erstellt.
Wenn Sie ein nicht versioniertes Dataset mit aktivierter Archivierung mit SQL bearbeiten möchten, müssen Sie dazu die Archivansicht verwenden. Dabei werden die Felder, mit denen die Aktualisierung eines Features oder Datensatzes nachverfolgt werden, und das ObjectID-Feld automatisch aktualisiert.

Wenn Sie bei der Aktivierung der Archivierung nicht die Berechtigung zum Erstellen einer Sicht hatten, können Sie den SQL-Zugriff über das Kontextmenü der Tabelle oder Feature-Class in ArcGIS for Desktop aktivieren (und damit gleichzeitig eine Archivansicht erstellen), nachdem Ihnen die Berechtigung zum Erstellen einer Sicht in der Datenbank erteilt wurde.
Wenn von der Funktion "Is_Versioned" der Wert False zurückgegeben wird, ermitteln Sie mit der Funktion Is_Archive_Enabled, ob für das nicht versionierte Dataset die Archivierung aktiviert wurde. Ermitteln Sie bei aktivierter Archivierung mit der Funktion Archive_View_Name den Namen der Archivansicht, die die Bearbeitung des Datasets mit SQL ermöglicht.
Das Dataset enthält eine Spalte für binäre Geometrie oder eine ArcSDE-XML-Spalte
Wenn die Daten, auf die Sie zugreifen möchten, binären Geometriespeicher oder ArcSDE XML verwenden, müssen Sie die erforderlichen verknüpften Tabellen in Ihre Abfrage einbeziehen und mithilfe der richtigen Spalten verbinden, damit die gewünschten Informationen in den verknüpften Tabellen angezeigt werden.
Verwenden Sie SQL nicht, um Datasets zu bearbeiten, die Spalten vom Typ binäre Geometriespeicherdaten oder ArcSDE-XML-Daten enthalten.