Чтение версионных данных в SQL Server с использованием версионных представлений
Для доступа к версионным данным можно выполнять запросы SQL SELECT к версионным представлениям.
Версионные представления автоматически получают доступ к текущему состоянию версии DEFAULT. Если вы выполняете запросы SELECT к версионному представлению, оно будет обращаться к текущему состоянию DEFAULT. Если другие пользователи вносят изменения в версию DEFAULT, тем самым изменяя состояние, на которое ссылается версия DEFAULT, последующие запросы будут адресованы к последнему по времени состоянию и соответствующим изменениям.
Если вы хотите выполнить запрос к другой версии, отличной от DEFAULT, или не хотите, чтобы ваши запросы меняли состояние DEFAULT, выполните встроенную процедуру set_current_version. Эта процедура проверяет имя версии и задает соответствующее состояние базы данных. Запросы к версии всегда указывают состояние соответствующей версии, когда вы используете сохраненную процедуру set_current_version.
Функцию set_current_version можно выполнить непосредственно из клиента SQL. Синтаксис команды для базы геоданных со схемой sde:
EXEC sde.set_current_version '<version_name>'
Для базы геоданных со схемой dbo, встроенная процедура принадлежит пользователю dbo, поэтому используется следующий синтаксис:
EXEC dbo.set_current_version '<version_name>'
Эту процедуру можно вызвать снова, чтобы изменить другие версии, также ее можно вызывать каждый раз при обновлении рабочей области, чтобы возвращать текущее состояние версионной таблицы вызывающему приложению.
-
Убедитесь, что для версионного класса объектов или таблицы, к которой вы обращаетесь, имеется версионное представление.
Начиная с ArcGIS 10.1, версионные представления создаются автоматически для всех версионных данных. Если данные зарегистрированы как версионные в более ранней версии, чем 10.1, можно создать версионное представление с помощью инструмента геообработки Создать версионное представление (Create Versioned View).
-
Откройте окно запросов Transact SQL и выполните встроенную процедуру set_current_version, чтобы задать версию, к которой будет создаваться запрос.
В этом примере, для запросов выбирается версия version2.
EXEC sde.set_current_version 'version2'
-
Выполнение выражения SELECT к версионному представлению для чтения версионных данных из базы геоданных.
В этом примере версионное представление называется code_mv.
SELECT owner, site_address, region FROM code_mv WHERE region = 'b'
Если необходимо вернуть в запрос текущее состояние версии DEFAULT, выполните процедуру set_default.
--For sde-schema geodatabases
EXEC sde.set_default;
--For dbo-schema geodatabases
EXEC dbo.set_default;