Вы можете использовать SQL для обновления, добавления и удаления данных в неверсионных таблицах базы геоданных, если они не участвуют в объектах поведения базы геоданных. Сведения о типах данных и поведении базы геоданных, которые нельзя редактировать с помощью SQL, доступны в разделе Какие типы данных могут редактироваться с помощью SQL?.
Все данные, которые были зарегистрированы в базе геоданных, имеют уникальное непустое управляемое системой поле ObjectID (Row ID). Вам необходимо предоставить уникальное значение для ObjectID, когда вы используете SQL для добавления записей в неверсионные таблицы в базе геоданных. Выполните процедуру Next_RowID, чтобы получить следующее доступное значение ObjectID. Затем используйте это значение в выражении INSERT, чтобы заполнить поле 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).
Если таблица содержит поле GUID или Global ID, необходимо также указать уникальное значение в этом поле. Подробнее см. раздел Вставка значения в поле Global ID в SQL Server с помощью SQL.