Known Limitations When Working with Google BigQuery

Serial Operations

The streaming nature of Google BigQuery presents challenges for operations that occur serially. These operations include the following actions:

If the data feed for the second operation begins before the first operation has completed, data can be lost. To avoid these streaming issues, enable bulk loading using SAS/ACCESS bulk-load options. For more information, see Bulk Loading and Bulk Unloading for Google BigQuery.

Table Aliases

Do not use table aliases in PROC SQL code that you pass to Google BigQuery when you invoke the UPDATE or DELETE statements.

Note: The DBIDIRECTEXEC system option must be enabled to use the UPDATE or DELETE statements with Google BigQuery. The DBIDIRECTEXEC system option is enabled by default for Google BigQuery.

Query Limitations for Google BigQuery

If you run a job that queries the Google BigQuery database, you might receive an error similar to the following:

ERROR: Error retrieving table list: Error: googleapi: Error 400: Job exceeded
       rate limits: Your project_and_region exceeded quota for concurrent
       queries. For more information, see
       https://cloud.google.com/bigquery/troubleshooting-errors,
       jobRateLimitExceeded

Google BigQuery limits the number of incoming query requests. For more information, see https://cloud.google.com/bigquery/quotas.

MODIFY Statement Is Not Supported for Google BigQuery

SAS/ACCESS Interface to Google BigQuery does not support positional inserts, updates, or deletions. Therefore, the MODIFY statement in a DATA step is not supported for Google BigQuery.

Last updated: February 3, 2026