All layers in ArcGIS need a unique identifier. Therefore, your query layer must contain a unique identifier.
If you define a query layer on a geodatabase table or feature class, the table will always have a unique identifier field: the ObjectID field.
In most cases, though, you create query layers to access feature classes and tables in a database. It is standard practice for database tables to contain a unique identifier field; therefore, your database tables will likely already contain a field you can use as a unique identifier.
To be used as a unique identifier in ArcGIS, a field must be not null, contain unique values, and be one of the following data types:
- Integer (positive values only)
Since the value in the unique identifier field uniquely identifies a row or feature object within ArcGIS, values in that field must always be unique and not null. It is your responsibility to guarantee that values in this field meet this requirement.
If a qualifying field is present, ArcGIS sets the first not-null field it finds as the unique identifier field by default when you drag a database table from the Project pane and place it in the map or validate a query layer definition. This is often an adequate value to use as the unique identifier field, but you can choose another qualifying field or fields from the Unique Identifier Field(s) list to be used instead. Follow these steps to change the unique identifier fields ArcGIS uses for your database table:
- In the Contents pane, right-click the layer and click Properties .
- Click the Source tab on the layer properties dialog box.
- The data source table will have a property named Query, which displays the current SQL query for the layer. Click the Edit button .
This opens the Edit Query Layer dialog box, where you can make the desired modifications to the query layer.
- Click Next.
- Choose a different qualifying field or set of fields to be used as the unique identifier and click Finish.
- Click OK to close the Layer Properties dialog box.