Lesen versionierter Daten in SQL Server mit versionierten Sichten
Sie können SQL SELECT-Anweisungen bei versionierten Sichten ausführen, um auf versionierte Daten zuzugreifen.
Versionierte Sichten greifen automatisch auf den aktuellen Status der DEFAULT-Version zu. Wenn Sie SELECT-Anweisungen bei einer versionierten Sicht ausführen, greift diese auf den aktuellen Status der DEFAULT-Version zu. Wenn andere Benutzer Bearbeitungen an der DEFAULT-Version vornehmen (und dadurch den Status ändern, auf den die DEFAULT-Version verweist), werden bei Ihren nachfolgenden Abfragen der letzte Status der DEFAULT-Version und ihre Bearbeitungen angezeigt.
Wenn Sie eine andere als die DEFAULT-Version abfragen möchten oder Sie nicht möchten, dass mit den Abfragen der DEFAULT-Version die Status geändert werden, führen Sie die gespeicherte Prozedur "set_current_version" aus. Mit dieser Prozedur wird der angegebene Versionsname überprüft und der Datenbank-State intern festgelegt. Abfragen der Version verweisen immer auf den Status der Version, auf die zu dem Zeitpunkt verwiesen wurde, zu dem Sie "set_current_version" ausgeführt haben.
Die Funktion "set_current_version" kann direkt von einem SQL-Client ausgeführt werden. Die Syntax für eine SDE-Schema-Geodatabase lautet wie folgt:
EXEC sde.set_current_version '<version_name>'
Für DBO-Schema-Geodatabases ist der Besitzer der gespeicherten Prozedur "dbo", sodass die Syntax wie folgt lautet:
EXEC dbo.set_current_version '<version_name>'
Diese Prozedur kann nach Bedarf erneut aufgerufen werden, um zu anderen Versionen zu wechseln, und sie kann jedes Mal beim Aktualisieren des Workspaces aufgerufen werden, um den aktuellen Zustand der versionierten Tabelle an die aufrufende Anwendung zurückzugeben.
-
Stellen Sie sicher, dass eine versionierte Sicht für die versionierte Feature-Class oder die Tabelle vorhanden ist, auf die Sie zugreifen möchten.
Ab ArcGIS 10.1 werden versionierte Sichten erstellt, wenn Sie Daten versionieren. Wenn die Daten vor Version 10.1 versioniert wurden, können Sie eine versionierte Sicht erstellen, indem Sie das Geoverarbeitungswerkzeug Versionierte Sicht erstellen ausführen.
-
Öffnen Sie ein Transact-SQL-Abfragefenster, und führen Sie die gespeicherte Prozedur "set_current_version" aus, um die Version festzulegen, die Sie abfragen möchten.
In diesem Beispiel wird "version2" als abzufragende Version festgelegt.
EXEC sde.set_current_version 'version2'
-
Geben Sie bei der versionierten Sicht eine SELECT-Anweisung aus, um versionierte Daten von der Geodatabase zu lesen.
In diesem Beispiel lautet die versionierte Sicht "code_mv".
SELECT owner, site_address, region FROM code_mv WHERE region = 'b'
Wenn Sie zum Abfragen des aktuellen Status der DEFAULT-Version zurückkehren müssen, führen Sie die Prozedur "set_default" aus.
--For sde-schema geodatabases
EXEC sde.set_default;
--For dbo-schema geodatabases
EXEC dbo.set_default;