Lesen von versionierten Daten in SQL Server mit Multiversioned Views

Sie können SELECT-SQL-Anweisungen für Multiversioned Views ausführen, um auf versionierte Daten zuzugreifen.

Multiversioned Views greifen automatisch auf die DEFAULT-Version zu. Bevor Sie Abfragen für die Sicht eingeben, müssen Sie sicherstellen, dass Sie die erforderliche Version abfragen.

Um auf einen bestimmten Status einer Version zuzugreifen, führen Sie die gespeicherte ArcSDE-Prozedur "set_current_version" aus. Mit dieser Prozedur wird der angegebene Versionsname überprüft und der Datenbank-State intern festgelegt. Die Prozedur kann direkt von einem SQL-Client ausgeführt werden. Die Syntax, die für die aktuelle Version der gespeicherten Prozedur festgelegt wird, lautet für eine SDE-Schema-Geodatabase 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 bei Bedarf erneut aufgerufen werden, um zu anderen Versionen zu wechseln, und sie wird jedes Mal beim Aktualisieren des Workspaces aufgerufen, um den aktuellen Zustand der versionierten Tabelle an die aufrufende Anwendung zurückzugeben.

Wenn Sie die Version auf DEFAULT festlegen, wird der aktuelle Status gecacht. Sie sehen dann nur den Status der DEFAULT-Version. Wenn Sie keine Version festlegen, wird eine dynamische Ansicht der DEFAULT-Version zurückgegeben. Während der Bearbeitung sehen Sie dann die Änderungen in der DEFAULT-Version.

VorsichtVorsicht:

Multiversioned Views sollten nicht zum Zugreifen auf komplexe Features oder zum Ändern von solchen verwendet werden, d. h. Features, die an geometrischen Netzwerken, Topologien, Terrains, Cadastral Fabrics, Netzwerk-Datasets oder Beziehungen beteiligt sind oder ein spezifisches Verhalten in der Geodatabase aufweisen. Zum Anzeigen und Ändern dieser Feature-Typen sollten Sie ArcGIS verwenden.

Schritte:
  1. Führen Sie an einer MS-DOS-Befehlseingabeaufforderung das Dienstprogramm "sdetable" aus, um eine Multiversioned View zu erstellen.
    sdetable –o create_mv_view –T code_mv –t code_enf 
    –i sde:sqlserver:myserver\ssinst –D code –u sarja –p not4u
  2. Öffnen Sie ein Transact-SQL-Abfragefenster, und führen Sie die gespeicherte Prozedur "set_current_version" aus.
    EXEC sde.set_current_version 'version2'
    HinweisHinweis:

    Wenn Sie die aktuelle Version nicht festlegen, wird beim Abfragen jeweils der aktuelle Status der DEFAULT-Version angezeigt. Wenn Sie die aktuelle Version festlegen, wird der Status gecacht. Sie verfügen dann nur über die statische angegebene Version.

  3. Geben Sie eine SELECT-Anweisung für die Multiversioned View aus, um versionierte Daten aus der Geodatabase zu lesen.
    SELECT owner, site_address, region
    FROM code_mv
    WHERE region = 'b'

Verwandte Themen


3/6/2012