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

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

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

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

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

ArcGIS for 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 ドキュメントに格納することはできません。

関連トピック

5/10/2014