ArcGIS Desktop

  • Документация
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

Справка

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Больше...

Next_GlobalID

  • Определение
  • Синтаксис
  • Возвращаемый тип
  • Примеры

Определение

Next_GlobalID получает в качестве входного параметра таблицу, зарегистрированную в базе геоданных, и возвращает следующее значение GlogalID.

Вы можете использовать это значение при добавлении строки в таблицу с помощью SQL.

Поле globalID добавляется, чтобы позволить таблице участвовать в репликации базы геоданных и для автономного картографирования.

Вы можете использовать это значение при добавлении строки в таблицу с помощью SQL.

Если входная таблица не зарегистрирована в базе геоданных, будет возвращена ошибка.

Синтаксис

<geodatabase administrator schema>.next_globalid (<table owner>, <table name>)

В большинстве баз геоданных для схемы администратора базы геоданных используется sde. Однако для баз геоданных с dbo-схемой в SQL Server это dbo, а для баз геоданных с пользовательской схемой в Oracle - это имя пользовательской схемы.

Возвращаемый тип

Строка

Примеры

Следующие примеры демонстрируют использование функции Next_GlobalID в базах данных, в которых это поддерживается.

Пример для каждой базы данных добавляет запись в таблицу sitings, владельцем которой является buse, и вызывает процедуру Next_RowID, чтобы добавить значение в поле ObjectID, и процедуру Next_GlobalID, чтобы добавить значение в поле GlobalID.

DB2

Поскольку таблицы базы геоданных содержат непустое поле ObjectID, вам необходимо сначала получить значение, которое будет добавлено в это поле. В приведенном примере следующее значение RowID получено для поля ObjectID (698), затем запись со следующим значением RowID добавлена в таблицу, и функция Next_GlobalID использована для того, чтобы добавить значение в поле GlobalID.

--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

Можно включить утилиту Next_GlobalID в выражение insert для вставки следующего доступного значения ID. В следующем примере утилита Next_RowID используется для вставки значения в поле ObjectID, которое представлено во всех таблицах баз геоданных и должно быть заполнено.

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

Можно включить функцию Next_GlobalID в выражение insert для вставки следующего доступного значения ID. В следующем примере функция Next_RowID используется для вставки значения в поле ObjectID, которое представлено во всех таблицах баз геоданных и должно быть заполнено.

Примечание:

Чтобы использовать функцию Next_GlobalID в PostgreSQL, необходимо создать расширение PostgreSQL uuid-ossp в той базе данных, где хранится база геоданных.

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

Next_GlobalID и Next_RowID – это сохраненные процедуры, которые должны запускаться вне выражения INSERT для получения следующих значений ID. Обе они хранятся в схеме базы геоданных администратора. В следующем примере администратор базы геоданных – sde. Значения, возвращаемые этими процедурами, используются в выражении INSERT с целью обновления таблицы sitings.

--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'
 );
Подсказка:

Если вы не хотите получать следующее значение globalID перед вставкой его в таблицу, используйте функцию SQL Server newid() непосредственно в выражении insert, как показано в разделе Вставка значения в столбец Global ID SQL Server с использованием SQL.

Связанные разделы

  • GlobalID_Name
  • Добавление значения в столбец global ID или GUID в DB2 с использованием SQL
  • Добавление значения в столбец global ID или GUID в Oracle с использованием SQL
  • Добавление значения в столбец global ID (GUID) в PostgreSQL с использованием SQL

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2017 Esri. | Конфиденциальность | Правовая информация