SQL Server に格納されたジオデータベースのキーセット テーブル

キーセット テーブルは ArcGIS Desktop クライアントが整数、番号、日付、文字列タイプの属性を使用してテーブルを結合するジオデータベース リレーションシップ クエリを実行するときに、選択された行のリストを保持するために使用されます。

SQL Server 用 ArcSDE ログ ファイル設定オプション」で説明しているように、ログ ファイル テーブルには選択フィーチャの ObjectID が格納されます。キーセット テーブルは、ObjectID 以外の属性による結合に対応するために使用されます。

キーセット テーブルはデータベース クエリのソース選択セットの行の数が 99 を超えるセッション(接続)ごとに 1 つ作成されます。

ArcGIS Desktop のキーセット テーブル

ArcGIS Desktop ではキーセット テーブルを確認できません。ただし、キーセット テーブルを作成し、データを設定することは可能です。そのためには、ArcMap のリレーションシップ クラスに関与するフィーチャクラスで 99 個を超えるレコードを選択した後、属性テーブルを開き、オプション メニューの関連テーブル リストを使用して関連テーブルを取得します。また、編集セッションの開始時にもキーセット テーブルが作成されます。

Microsoft SQL Server データベースに格納されたキーセット テーブル

キーセット テーブルは、次のどちらかの状態になるまでジオデータベースに作成されません。

どちらかの状態が発生した場合、キーセット テーブルはグローバル一時テーブルとして作成されます。1 つ目のケースでは、キーセット テーブルが作成され、レコードが追加されます。2 つ目のケースでは、キーセット テーブルは作成されるだけで、条件を満たす選択セットが作成されるまで空のままになります。

キーセット テーブルの名前には、キーセット テーブルの作成につながる操作を行ったユーザのスキーマの名前と、ユーザ セッションのプロセス ID 番号が含まれています。形式は次のとおりです。

<user_schema>.##keyset_<process_id>_sde

キーセット テーブルは選択セットのキーセット ID 番号とフィーチャクラス間のリレーションシップのベースとなるフィールドの値を格納します。

キーセット テーブルは、一時テーブルなので、ユーザがデータベースへの接続を終了したときに削除されます。

次に、LATERALS テーブルと CONTRACTORS テーブル間で選択を行うためのキーセット テーブルを示します。この場合、LONG_VAL フィールドには、LATERALS テーブルと CONTRACTORS テーブルのリレーションシップ クラスのベースとなる CONTRACTOR_ID フィールドの値が含まれます。

キーセット テーブルとそれに関連する SQL Server のビジネス テーブル

<user_schema>.##keyset_<process_id>_sde

次に、SQL Server のキーセット テーブルの定義を示します。

フィールド名

フィールド タイプ

説明

Null?

KEYSET_ID

integer

キーセット選択の ID。

NOT NULL

LONG_VAL

integer

リレーションシップ クラスのベースとなるフィールドが数値フィールドの場合、そのフィールドの値。

STR_VAL

nvarchar(256)

リレーションシップ クラスのベースとなるフィールドが文字列フィールドの場合、そのフィールドの値。

DBL_VAL

float

リレーションシップ クラスのベースとなるフィールドが倍精度数値フィールドの場合、そのフィールドの値。

DATE_VAL

datetime

datetime2

リレーションシップ クラスのベースとなるフィールドが日付フィールドの場合、そのフィールドの値。

XML ドキュメントでのキーセット テーブル

キーセット テーブルは一時的なテーブルのため、XML ドキュメントに格納することはできません。

関連項目


7/10/2012