Referência de variáveis do sistema

O BigQuery é compatível com as variáveis de sistema a seguir para consultas de várias instruções ou em sessões. É possível usar variáveis do sistema para definir ou recuperar informações durante a execução da consulta, de maneira semelhante às variáveis de linguagem processuais definidas pelo usuário.

Nome Tipo Leitura e gravação ou somente leitura Descrição
@@current_job_id STRING Somente leitura ID do job em execução no momento. No contexto de uma consulta de várias instruções, isso retorna o job responsável pela instrução atual, e não a consulta inteira.
@@dataset_id STRING Leitura e gravação ID do conjunto de dados padrão no projeto atual. Esse ID é usado quando um conjunto de dados não é especificado para um projeto na consulta. Use a instrução SET para atribuir @@dataset_id a outro ID de conjunto de dados no projeto atual. As variáveis de sistema @@dataset_project_id e @@dataset_id podem ser definidas e usadas em conjunto.
@@dataset_project_id STRING Leitura e gravação O ID do projeto padrão usado quando não é especificado um para o conjunto de dados usado na consulta. Se @@dataset_project_id não estiver definido ou se estiver definido como NULL, o projeto de execução de consulta (@@project_id) será usado. Use a instrução SET para atribuir @@dataset_project_id a outro ID do projeto. As variáveis de sistema @@dataset_project_id e @@dataset_id podem ser definidas e usadas em conjunto.
@@last_job_id STRING Somente leitura O ID do job mais recente a ser executado na consulta atual de várias instruções, exceto o atual. Se a consulta de várias instruções contiver instruções CALL, esse job pode ter vindo de um procedimento diferente.
@@project_id STRING Somente leitura ID do projeto usado para executar a consulta atual. No contexto de um procedimento, @@project_id se refere ao projeto que está executando a consulta de várias instruções, e não ao projeto proprietário do procedimento.
@@query_label STRING Leitura e gravação Rótulo de consulta a ser associado a jobs de consulta na sessão ou consulta de várias instruções atual. Se definido em uma consulta, todos os jobs de consulta subsequentes no script ou na sessão terão esse rótulo. Se não for definido em uma consulta, o valor desta variável do sistema será NULL. Para ver um exemplo de como definir essa variável do sistema, consulte Associar jobs em uma sessão a um rótulo.
@@row_count INT64 Somente leitura Se usado em uma consulta de várias instruções e a instrução anterior for DML, especifica o número de linhas alteradas, inseridas ou excluídas, como resultados dessa instrução DML. Se a instrução anterior for MERGE, @@row_count vai representar o número total combinado de linhas inseridas, removidas e excluídas. Esse valor será NULL se não estiver em uma consulta de várias instruções.
@@script.bytes_billed INT64 Somente leitura Total de bytes faturados até o momento no job de consulta de várias instruções em execução no momento. Esse valor será NULL se não estiver no job.
@@script.bytes_processed INT64 Somente leitura Total de bytes processados até o momento no job de consulta de várias instruções em execução no momento. Esse valor será NULL se não estiver no job.
@@script.creation_time TIMESTAMP Somente leitura Hora da criação do job de consulta de várias instruções em execução no momento. Esse valor será NULL se não estiver no job.
@@script.job_id STRING Somente leitura ID do job de consulta de várias instruções em execução no momento. Esse valor será NULL se não estiver no job.
@@script.num_child_jobs INT64 Somente leitura Número de jobs filhos concluídos no momento. Esse valor será NULL se não estiver no job.
@@script.slot_ms INT64 Somente leitura Número de milissegundos de slot usados até o momento pelo script. Esse valor será NULL se não estiver no job.
@@session_id INT64 Somente leitura ID da sessão a que a consulta atual está associada.
@@time_zone STRING Leitura e gravação O fuso horário padrão a ser usado em funções SQL dependentes de fuso horário, quando um fuso horário explícito não é especificado como um argumento. @@time_zone pode ser modificado usando uma instrução SET para qualquer nome de fuso horário válido. No início de cada script, @@time_zone começa como "UTC".

Para oferecer compatibilidade com versões anteriores, as expressões usadas em uma cláusula OPTIONS ou FOR SYSTEM TIME AS OF são padronizadas com o fuso horário America/Los_Angeles, enquanto todas as outras expressões de data e hora usam o fuso horário UTC. Se @@time_zone tiver sido definido na consulta de várias instruções, o fuso horário escolhido será aplicado a todas as expressões de data e hora, incluindo as cláusulas OPTIONS e FOR SYSTEM TIME AS OF.

Além das variáveis de sistema mostradas acima, é possível usar variáveis de sistema EXCEPTION durante a execução de uma consulta de várias instruções. Saiba mais sobre as variáveis de sistema EXCEPTION na instrução de linguagem processual BEGIN...EXCEPTION.

Para ver exemplos de como usar as variáveis do sistema em consultas de várias instruções, consulte Definir uma variável.

Para ver exemplos de como usar as variáveis do sistema em sessões, consulte Exemplo de sessão.