Definition
"Next_GlobalID" gibt anhand einer in der Geodatabase registrierten Tabelle als Eingabe den nächsten Global ID-Wert zurück.
Wenn Sie mithilfe von SQL eine Zeile in die Tabelle einfügen, können Sie diesen Wert verwenden.
Das Feld "Globale ID" wird hinzugefügt, sodass die Tabelle Bestandteil der Geodatabase-Replikation oder Offlinekarte ist.
Wenn Sie mithilfe von SQL eine Zeile in die Tabelle einfügen, können Sie diesen Wert verwenden.
Falls die Eingabetabelle nicht in der Geodatabase registriert ist, wird ein Fehler zurückgegeben.
Syntax
<geodatabase administrator schema>.next_globalid (<table owner>, <table name>)
Bei den meisten Geodatabases lautet das Geodatabase-Administrator-Schema "sde". Im Falle von DBO-Schema-Geodatabases in SQL Server lautet das Schema "dbo", und bei Benutzerschema-Geodatabases in Oracle ist dies der Name des Benutzerschemas.
Rückgabetyp
Zeichenfolge
Beispiele
Es folgen einige Beispiele für die Verwendung von "Next_GlobalID" in allen unterstützten Datenbanken.
In dem Beispiel für die einzelnen Datenbanken wird ein Datensatz in die Tabelle "sitings" eingefügt, die im Besitz von "buse" ist. Außerdem wird die Prozedur "Next_RowID" aufgerufen, um einen Wert in das ObjectID-Feld einzufügen, und danach die Prozedur "Next_GlobalID", um einen Wert in das Feld "Globale ID" einzufügen.
DB2
Da Geodatabase-Tabellen über ein ObjectID-Feld verfügen, das nicht null ist, müssen Sie zunächst einen Wert abrufen, den Sie in dieses Feld einfügen. Im folgenden Beispiel wird der nächste RowID-Wert für das ObjectID-Feld (698) abgerufen. Anschließend wird ein Datensatz in die Tabelle eingefügt, die den nächsten RowID-Wert und die Funktion "Next_GlobalID" enthält, um einen Wert in das Feld "Globale ID" einzufügen.
--Get the next ObjectID value.
CALL sde.next_rowid('BUSE', 'SITINGS', ?, ?, ?);
Value of output parameters
Parameter Name : O_ROWID
Parameter Value : 698
Parameter Name : O_MSGCODE
Parameter Value : 0
Parameter Name : O_MESSAGE
Parameter Value : Procedure successfully completed.
Return Status = 1
--Insert the ObjectID from the previous statement to the objectid field.
--Use the Next_GlobalID function to insert a value to the globalid field.
INSERT INTO buse.sitings (objectid, globalid, mon_type)
VALUES (
698,
sde.next_globalid,
'golem'
);
The SQL command completed successfully
Oracle
Sie können das Dienstprogramm "Next_GlobalID" der Anweisung zum Einfügen hinzufügen, um den nächsten verfügbaren ID-Wert einzufügen. Im folgenden Beispiel wird ebenfalls das Dienstprogramm "Next_RowID" verwendet, um einen Wert in das ObjectID-Feld einzufügen, das in allen Geodatabase-Tabellen vorhanden ist und ausgefüllt werden muss.
INSERT INTO buse.sitings (objectid, globalid, mon_type)
VALUES (
sde.gdb_util.next_rowid('BUSE', 'SITINGS'),
sde.gdb_util.next_globalid,
'golem'
);
1 row created
PostgreSQL
Sie können die Funktion "Next_GlobalID" der Anweisung zum Einfügen hinzufügen, um den nächsten verfügbaren ID-Wert einzufügen. Im folgenden Beispiel wird ebenfalls die Funktion "Next_RowID" verwendet, um einen Wert in das ObjectID-Feld einzufügen, das in allen Geodatabase-Tabellen vorhanden ist und ausgefüllt werden muss.
INSERT INTO buse.sitings (objectid, globalid, mon_type)
VALUES (
sde.next_rowid('buse', 'sitings'),
sde.next_globalid(),
'golem'
);
Query returned successfully: 1 row affected, 109 ms execution time.
SQL Server
Bei "Next_GlobalID" und "Next_RowID" handelt es sich um gespeicherte Prozeduren, die außerhalb der INSERT-Anweisung ausgeführt werden müssen, um die nächsten ID-Werte abzurufen. Beide Prozeduren sind im Schema des Geodatabase-Administrators gespeichert. Im folgenden Beispiel ist der Geodatabase-Administrator "sde". Die von diesen gespeicherten Prozeduren zurückgegebenen Werte werden in der INSERT-Anweisung verwendet, um die Tabelle "sitings" zu aktualisieren.
--Get the next ObjectID value.
DECLARE @oid int
EXEC sde.next_rowid 'buse', 'sitings', @oid OUTPUT
SELECT @oid "ObjectID value";
ObjectID value
98765
--Get the next global ID value.
DECLARE @gid uniqueidentifier
EXEC sde.next_globalid @gid OUTPUT
SELECT @gid "ID value";
ID value
0D5D0605-8954-4A65-B86C-D2DA96C2D0C5
--Insert a row to the sitings table.
INSERT INTO buse.sitings (objectid, globalid, mon_type)
VALUES (
98765,
'0D5D0605-8954-4A65-B86C-D2DA96C2D0C5',
'golem'
);