Mithilfe von SQL können Sie Daten in der Geodatabase aktualisieren, Daten in die Geodatabase einfügen und Daten aus nicht versionierten Tabellen daraus löschen, falls diese nicht an Geodatabase-Verhalten beteiligt sind. Unter Welcher Datentyp kann mit SQL bearbeitet werden? finden Sie weitere Informationen zu den Datentypen und zum Geodatabase-Verhalten, die nicht mit SQL bearbeitet werden können.
Alle Daten, die unter der Geodatabase registriert sind, verfügen über ein vom System verwaltetes, eindeutiges ObjectID-Feld (Zeilen-ID), das nicht null ist. Wenn Sie SQL zum Einfügen von Datensätzen in nicht versionierte Tabellen in der Geodatabase verwenden, müssen Sie für die ObjectID einen Einzelwert eingeben. Mit der Funktion "Next_Row_ID" können Sie mithilfe von SQL einen Wert in das ObjectID-Feld einfügen.
In diesen Anweisungen werden die zeilenweise Aktualisierung in einer nicht versionierten Tabelle und das Einfügen einer ObjectID beschrieben. In der Regel schreiben Sie eine Routine oder ein Client-Programm, um ObjectIDs abzurufen und die Daten zu aktualisieren.
- Melden Sie sich über einen SQL-Editor wie I-SQL bei der Datenbank an.
Melden Sie sich bei der Datenbank als Benutzer an, der über die Berechtigung zum Bearbeiten der Daten verfügt.
- Fragen Sie aus der Tabelle "table_registry" die Registrierungs-ID und den Besitzer der Tabelle ab, in die Sie eine Zeile einfügen möchten.
In diesem Beispiel werden die Registrierungs-ID und der Besitzername für die Tabelle "factories" zurückgegeben.
SELECT owner,registration_id,table_name FROM sde.table_registry WHERE table_name='factories'; owner registration_id table_name editor1 7 factories
- Melden Sie sich an, um die Funktion "next_row_id" auszuführen und den nächsten verfügbaren Zeilen-ID-Wert abzurufen.
- Führen Sie die Funktion "next_row_id" aus. Der Besitzer dieser Funktion ist der SDE-Benutzer.
In diesem Beispiel ist der Tabellenbesitzer "editor1", und die Registrierungs-ID der Tabelle "factories" lautet 7.
EXECUTE FUNCTION "sde".next_row_id('editor1',7); ret_code 0 err_msg rowid 18 1 row(s) retrieved.
- Wechseln Sie zurück zum SQL-Editor, und fügen Sie der Tabelle einen Datensatz hinzu.
INSERT INTO factories VALUES ( 18, 'makem' ST_PolyFromText('POLYGON((52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18))',4326) );
Wenn die Tabelle auch eine GUID oder ein Feld "Globale ID" enthält, müssen Sie für dieses Feld ebenfalls einen Einzelwert angeben. Weitere Informationen finden Sie unter Einfügen eines Wertes in eine Global ID-Spalte in Informix mit SQL.