マルチバージョン対応ビューによる SQL Server のバージョン対応データの読み取り

マルチバージョン対応ビューに対して SQL SELECT ステートメントを実行して、バージョン対応データにアクセスできます。

マルチバージョン対応ビューは自動的に DEFAULT バージョンにアクセスします。ビューに対してクエリを発行する前に、正しいバージョンにおいてクエリを実行しているか確認する必要があります。

特定のバージョンの特定の状態にアクセスするには、ArcSDE の set_current_version ストアド プロシージャを実行します。このプロシージャは指定されたバージョン名を検証して、該当するデータベースの状態を内部的に設定します。これは SQL クライアントから直接実行できます。sde スキーマ ジオデータベースで現在のバージョンを設定するストアド プロシージャの構文は次のとおりです。

EXEC sde.set_current_version '<version_name>'

dbo スキーマ ジオデータベースの場合、ストアド プロシージャの所有者は dbo です。そのため構文は次のようになります。

EXEC dbo.set_current_version '<version_name>'

必要に応じてこのプロシージャを再度呼び出して別のバージョンに変更することもできます。また、ワークスペースが更新されるたびにアプリケーションから呼び出して、バージョン対応テーブルの現在の状態を取得することもできます。

バージョンを DEFAULT に設定した場合、現在の状態がキャッシュされ、DEFAULT バージョンのキャッシュされた状態が参照できます。バージョンをまったく設定しなかった場合は、DEFAULT バージョンの状態が動的に返されます。そのため、DEFAULT バージョンが編集されると DEFAULT バージョンに対する変更も参照できます。

注意注意:

ジオメトリック ネットワークやトポロジ、テレイン、パーセル ファブリック、ネットワーク データセット、リレーションシップに関係するフィーチャ、または、特定のジオデータベースの振舞いを行うフィーチャのような複雑なフィーチャを参照または変更する場合、マルチバージョン対応ビューを使用してはいけません。このような種類のフィーチャを表示し変更するには ArcGIS を使用してください。

手順:
  1. MS-DOS コマンド プロンプトで sdetable ユーティリティを実行して、マルチバージョン対応ビューを作成します。
    sdetable –o create_mv_view –T code_mv –t code_enf 
    –i sde:sqlserver:myserver\ssinst –D code –u sarja –p not4u
  2. Transact SQL クエリ ウィンドウを開いて、set_current_version ストアド プロシージャを実行します。
    EXEC sde.set_current_version 'version2'
    メモメモ:

    現在のバージョンを設定しなかった場合は、クエリするたびに DEFAULT バージョンの最新の状態が参照されます。現在のバージョンを設定した場合は、状態がキャッシュされ、指定したバージョンのビューは静的なままです。

  3. マルチバージョン対応ビューに対して SELECT ステートメントを発行して、ジオデータベースからバージョン対応データを読み取ります。
    SELECT owner, site_address, region
    FROM code_mv
    WHERE region = 'b'

関連項目


3/6/2012