ArcGIS のすべてのレイヤー (クエリ レイヤー、ジオデータベースのレイヤー、データベースのレイヤーも含む) には、一意識別子が必要です。
単一のジオデータベース テーブルまたはフィーチャクラスでクエリ レイヤーを定義する場合、一意識別子フィールドとして ObjectID フィールドを使用します。
ただし、ほとんどの場合は、クエリ レイヤーを作成してデータベース内のフィーチャクラスやテーブルにアクセスしたり、データベース レイヤーを ArcGIS Desktop クライアントのマップに直接ドラッグしたりします。データベース テーブルに一意識別子フィールドを含めるのは、標準的な使用方法です。そのため、使用しているデータベース テーブルには、一意識別子として使用できるフィールドがすでに含まれている可能性があります。その場合は、ArcMap が適切なフィールドを検出し、それを一意識別子として設定します。
ArcGIS デスクトップ アプリでフィールドを一意識別子として使用するには、そのフィールドに NULL が含まれず、値が一意であり、かつ以下のデータ タイプのいずれかである必要があります。
- 整数 (正の値のみ)
- String
- GUID
- 日時
フィールドの値は常に一意である必要があります。NULL は使用できません。必要に応じてユーザーがこのフィールドの値を管理します。
データベース テーブルを ArcMap にドラッグしたとき、または新しいクエリ レイヤー定義を整合チェックしたときに、ArcGIS が適切な一意識別子を検出できなかった場合、使用する 1 つ以上のフィールドを選択するよう要求されます。この例では、ArcGIS は、一意識別子として使用する、NULL を含まない整数のフィールドを検出できませんでした。テーブルの行で一意識別子として使用するための、NULL を含まず値が一意である、既知のフィールドまたはフィールドの組み合せを選択する必要があります。
データベース テーブルをカタログ ツリーからドラッグして ArcMap に配置したとき、またはクエリ レイヤー定義を整合チェックしたときに、適切なフィールドが存在する場合、ArcGIS は最初に検出した NULL を含まないフィールドをデフォルトで一意識別子フィールドとして設定します。多くの場合、この値を一意識別子フィールドとして十分使用できますが、代わりに使用する 1 つ以上の別の適切なフィールドを [一意識別子フィールド] リストから選択することもできます。独自の一意識別子を選択するには、クエリ レイヤーを変更します。