ArcGIS のすべてのレイヤー (クエリ レイヤー、ジオデータベースのレイヤー、データベースのレイヤーも含む) には、一意識別子が必要です。
単一のジオデータベース テーブルまたはフィーチャクラスでクエリ レイヤーを定義する場合、一意識別子フィールドとして Object ID フィールドを使用します。
ただし、ほとんどの場合は、クエリ レイヤーを作成してデータベース内のフィーチャクラスやテーブルにアクセスしたり、データベース レイヤーを ArcGIS Desktop クライアントのマップに直接ドラッグしたりします。データベース テーブルに一意識別子フィールドを含めるのは、標準的な使用方法です。そのため、使用しているデータベース テーブルには、一意識別子として使用できるフィールドがすでに含まれている可能性があります。その場合は、ArcGIS Pro が適切なフィールドを検出し、それを一意識別子として設定します。
ArcGIS デスクトップ アプリでフィールドを一意識別子として使用するには、そのフィールドに NULL が含まれず、値が一意であり、かつ以下のデータ タイプのいずれかである必要があります。
- 整数 (正の値のみ)
- String
- GUID
- 日時
フィールドの値は常に一意である必要があります。NULL は使用できません。必要に応じてユーザーがこのフィールドの値を管理します。
メモ:
ArcGIS が NULL 値を検出すると、エラーが表示されます。ただし、クエリ レイヤーまたはデータベース テーブルで使用される一意識別子フィールドで一意の値を使用することは、ArcGIS では強制されません。ArcGIS に一意でない値が出現しているのにエラーが返されない場合でも、選択セットまたは ArcGIS 内のその他のクエリに不整合な結果が存在していることがあります。
登録済みデータ ストアを参照するフィーチャ レイヤー (フィーチャ サービス) 内のクエリ レイヤーを公開する場合、ID は単一の NULL でない一意の自動的に増加する整数フィールドである必要があります。
データベース テーブルを [カタログ] ウィンドウからドラッグしてマップに配置した場合またはクエリ レイヤー定義の整合チェックを実行した場合に、適切なフィールドが存在すると、ArcGIS では、最初に検出された NULL 以外のフィールドがデフォルトで一意識別子フィールドとして設定されます。多くの場合、この値を一意識別子フィールドとして十分使用できますが、代わりに使用する 1 つ以上の別の適切なフィールドを [一意識別子フィールド] リストから選択することもできます。独自の一意識別子を選択するには、クエリ レイヤーを変更します。