Редактирование неверсионных данных в базе геоданных в SQL Server с использованием SQL
Вы можете использовать SQL для обновления, добавления и удаления данных в неверсионных таблицах базы геоданных, если они не участвуют в объектах поведения базы геоданных. Сведения о типах данных и поведении базы геоданных, которые нельзя редактировать с помощью SQL, доступны в разделе Какие типы данных могут редактироваться с помощью SQL?.
Все данные, которые были зарегистрированы в базе геоданных, имеют уникальное непустое управляемое системой поле ObjectID (Row ID). Вам необходимо предоставить уникальное значение для ObjectID, когда вы используете SQL для добавления записей в неверсионные таблицы в базе геоданных.
Выполните процедуру Next_RowID, чтобы получить следующее доступное значение ObjectID. Затем используйте это значение в выражении INSERT, чтобы заполнить поле ObjectID для этой записи.

Следующее доступное значение ObjectID необязательно является следующим последовательным числом после последнего добавленного ObjectID. ObjectID для некоторых пользовательских приложений присваивается пакетно, поэтому следующий доступный ObjectID может быть намного больше, чем последний использованный идентификатор. Также, любые неиспользованные идентификаторы ObjectID из пакетов возвращаются в общее множество доступных значений, что означает, что следующее доступное значение ObjectID может на самом деле быть меньшим числом, чем последний добавленный вами идентификатор.
-
Войдите в любой редактор SQL, например, редактор SQL в Microsoft SQL Server Management Studio.
Выполните вход как пользователь с правами доступа на редактирование данных.
-
Выполните процедуру Next_RowID, чтобы получить значение для поля ObjectID.
В этом примере gisdata4 - это схема, в которой размещена таблица farmland.
DECLARE @id as integer EXEC dbo.next_rowid 'gisdata4', 'farmland', @id OUTPUT; SELECT @id "Next ObjectID"; Next ObjectID 423
-
Используйте значение, полученное в предыдущем выражении, чтобы заполнить поле ObjectID для записи, которую вы добавляете.
INSERT INTO gisdata4.farmland (objectid,crop,shape) VALUES ( 423, 'oats', geography::STGeomFromText('POLYGON((-111.85897004 33.25178949, -111.86899617 33.25065270, -111.86887014 33.25062350, -111.85884555 33.25176951, -111.85897004 33.25178949))', 4267));
- Вы можете продолжить редактирование или, если вы закончили редактирование, внести изменения в базу данных (операция COMMIT).