Creating a query layer
You use the New Query Layer dialog box in ArcMap to create query layers. Before you can create a query layer, you must first make a connection to a database. The Connection drop-down list shows available database connections.
After a connection to the database is established, a list of tables and views found in that database populates the left window of the dialog box. When you select one of the tables, the columns for that table are displayed in the right window.
Each column in a database has a specific data type. ArcGIS can work with most common database types. However, some less common database types are not supported. If the attribute column type is Unknown, this indicates that ArcGIS does not support that data type. When you specify a query, all columns that have an unknown data type must either be excluded or changed in the query to a different data type that ArcGIS supports.
To learn more about the data types that ArcGIS supports, see Data types supported in ArcGIS.
You specify an SQL query in the Query text box.
When building a query, a whole table can be added to the Query text box by either double-clicking it or dragging it from the List of Tables window into the Query text box. Likewise, you can add specific columns in a table to the query by double-clicking them or dragging them from the Columns window into the Query text box. You can also type specific queries or cut and paste a query from an external application into the Query text box.
SQL syntax specific to the database should be used when building a query layer. A common example would be as follows: SELECT * FROM Test.dbo.US_States. This would result in a query layer containing all rows from the US_States table. In ArcMap, this would display all the United States. For more information on building SQL queries, see Building a query expression.
Once the query is created, it must be validated. During validation, ArcGIS attempts to determine the properties of the query layer based on the first row returned in the table.
The properties of a query layer are the following:
- Unique identifier field—This is one or many fields used by ArcGIS to uniquely identify the layer.
- Dimensionality—This determines whether a layer's coordinates will include m-values to store route data and z-values to store 3D data.
- Geometry type—This determines whether the layer is a point, multipoint, line, or polygon.
- Spatial reference—This is the coordinate system and other related spatial properties for the layer.
- SRID—This is the layer's spatial reference identifier and is used to ensure that only geometries with the same spatial reference identifier are returned by the query.
You can view and modify these properties after a query layer has been validated by checking the Show advanced options check box and clicking Next.
The properties of a query layer are used to filter the rows returned to ArcGIS from the database. For example, if you have geometries in a table that have multiple SRIDs, the SRID property set on the query layer will be used to prevent any rows in the database table that don't match that SRID from being displayed in ArcMap.
- On the New Query Layer dialog box, specify a name in the Name text box for the query layer that will be created. This is the name that will appear in the ArcMap table of contents.
- Enter an SQL query into the Query text box.
Once the query is created, it must be validated. Click Validate to make sure the query syntax is correct and returns data that can be used by ArcGIS. The validation process executes the query in the database and verifies whether the result set from the query meets the data modeling standards enforced by ArcGIS. A query layer is not added to ArcMap until it is valid.
Rules for validation are as follows:
- The result set must have, at most, one spatial field.
- The result set must have, at most, one spatial reference.
- The result set must have only one shape type.
- The result set cannot have any field types not supported by ArcGIS.
If the validation fails for any reason, an error message is returned so you can modify the query.
Validation is especially important when working with data in spatial databases that do not enforce the same standards as ArcGIS.Tip:During the validation process, ArcGIS sets the dimensionality, geometry type, spatial reference, SRID, and unique identifier properties on the query layer. These values are based on the first row returned in the query. If you need to change these settings, you can do so through the Advanced Options dialog box. Check the Show Advanced Properties check box to display the advanced options page of the New Query Layer dialog box.
If your query is successfully validated, click Finish to add the result set to ArcMap as a query layer.
ArcMap calculates the extent of the layer when you drag it into the map. If you are adding a table that contains a lot of features, extent calculation can take a while. If you know the extent of the data or want to use the extent of your spatial reference instead of waiting for the extent to be calculated, you can do so. Click the appropriate button on the Calculate Extent dialog box. If you click Input Extent, you must type a valid extent that includes all the features in the table.