Documentation de référence sur les variables système

BigQuery accepte les variables système suivantes pour les requêtes multi-instructions ou dans des sessions. Vous pouvez utiliser des variables système pour définir ou récupérer des informations lors de l'exécution d'une requête, de la même manière que les variables de langage procédural définies par l'utilisateur.

Nom Type Lecture et écriture ou lecture seule Description
@@current_job_id STRING Lecture seule ID de la tâche en cours d'exécution. Dans le contexte d'une requête multi-instruction, renvoie la tâche responsable de l'instruction en cours et non pas l'intégralité de la requête multi-instruction.
@@dataset_id STRING Lecture et écriture ID de l'ensemble de données par défaut dans le projet actuel. Cet ID est utilisé lorsqu'un ensemble de données n'est pas spécifié pour un projet dans la requête. Vous pouvez utiliser l'instruction SET pour attribuer @@dataset_id à un autre ID d'ensemble de données dans le projet en cours. Les variables système @@dataset_project_id et @@dataset_id peuvent être définies et utilisées ensemble.
@@dataset_project_id STRING Lecture et écriture ID du projet par défaut utilisé lorsqu'il n'est pas spécifié pour un ensemble de données utilisé dans la requête. Si @@dataset_project_id n'est pas défini ou s'il est défini sur NULL, le projet d'exécution de la requête (@@project_id) est utilisé. Vous pouvez utiliser l'instruction SET pour attribuer @@dataset_project_id à un autre ID de projet. Les variables système @@dataset_project_id et @@dataset_id peuvent être définies et utilisées ensemble.
@@last_job_id STRING Lecture seule ID du job le plus récent à exécuter dans la requête multi-instruction actuelle, à l'exclusion du job en cours. Si la requête multi-instruction contient des instructions CALL, cette tâche peut provenir d'une autre procédure.
@@project_id STRING Lecture seule ID du projet utilisé pour exécuter la requête actuelle. Dans le contexte d'une procédure, @@project_id fait référence au projet qui exécute la requête multi-instruction et non au projet propriétaire de la procédure.
@@query_label STRING Lecture et écriture Libellé de requête à associer aux tâches de la requête, dans la requête multi-instruction ou la session actuelle. Si cette option est définie, toutes les tâches de requête suivantes du script ou de la session seront associées à ce libellé. Si cette option n'est pas définie dans une requête, la valeur de cette variable système est NULL. Pour obtenir un exemple de définition de cette variable système, consultez la section Associer des tâches dans une session à un libellé.
@@row_count INT64 Lecture seule Si cette variable est utilisée dans une requête multi-instruction et que l'instruction précédente est en LMD, spécifie le nombre de lignes modifiées, insérées ou supprimées suite à cette instruction LMD. Si l'instruction précédente est une instruction MERGE, @@row_count représente le cumul total de lignes insérées, supprimées et effacées. Cette valeur est NULL si la requête concernée n'est pas une requête multi-instruction.
@@script.bytes_billed INT64 Lecture seule Nombre total d'octets facturés jusqu'à présent dans le job de requête multi-instruction en cours d'exécution. Cette valeur est NULL si ce paramètre n'est pas spécifié dans la tâche.
@@script.bytes_processed INT64 Lecture seule Nombre total d'octets traités jusqu'à présent dans le job de requête multi-instruction en cours d'exécution. Cette valeur est NULL si ce paramètre n'est pas spécifié dans la tâche.
@@script.creation_time TIMESTAMP Lecture seule Heure de création du job de requête multi-instruction en cours d'exécution. Cette valeur est NULL si ce paramètre n'est pas spécifié dans la tâche.
@@script.job_id STRING Lecture seule ID du job de requête multi-instruction en cours d'exécution. Cette valeur est NULL si ce paramètre n'est pas spécifié dans la tâche.
@@script.num_child_jobs INT64 Lecture seule Nombre de tâches enfants actuellement terminées. Cette valeur est NULL si ce paramètre n'est pas spécifié dans la tâche.
@@script.slot_ms INT64 Lecture seule Nombre d'emplacements de millisecondes utilisés jusqu'à présent par le script. Cette valeur est NULL si ce paramètre n'est pas spécifié dans la tâche.
@@session_id INT64 Lecture seule ID de la session à laquelle la requête actuelle est associée.
@@time_zone STRING Lecture et écriture Fuseau horaire par défaut à utiliser dans les fonctions SQL dépendantes du fuseau horaire, lorsqu'un fuseau horaire explicite n'est pas spécifié en tant qu'argument. @@time_zone peut être modifié en utilisant une instruction SET pour n'importe quel nom de fuseau horaire valide. Au début de chaque script, @@time_zone commence par "UTC".

Pour des raisons de rétrocompatibilité, les expressions contenues dans une clause OPTIONS ou FOR SYSTEM TIME AS OF utilisent par défaut le fuseau horaire America/Los_Angeles, tandis que toutes les autres expressions de type date/heure utilisent le fuseau horaire UTC par défaut. Si @@time_zone a été précédemment défini dans la requête multi-instruction, le fuseau horaire choisi s'applique à toutes les expressions de type date/heure, y compris les clauses OPTIONS et FOR SYSTEM TIME AS OF.

Outre les variables système présentées ci-dessus, vous pouvez utiliser des variables système EXCEPTION pendant l'exécution d'une requête multi-instruction. Pour en savoir plus sur les variables système EXCEPTION, consultez la documentation sur l'instruction de langage procédural BEGIN...EXCEPTION.

Pour obtenir des exemples d'utilisation de variables système dans les requêtes multi-instructions, consultez la page Définir une variable.

Pour obtenir des exemples d'utilisation des variables système dans les sessions, consultez la section Exemple de session.