Referenz zu Systemvariablen

BigQuery unterstützt die folgenden Systemvariablen für Abfragen mit mehreren Anweisungen oder in Sitzungen. Sie können Systemvariablen verwenden, um während der Abfrageausführung Informationen festzulegen oder abzurufen, ähnlich wie bei benutzerdefinierten Variablen prozeduraler Sprachen.

Name Typ Lese- und Schreibzugriff oder schreibgeschützt Beschreibung
@@current_job_id STRING Schreibgeschützt Job-ID des derzeit ausgeführten Jobs. Im Kontext einer Abfrage mit mehreren Anweisungen gibt dies den Job zurück, der für die aktuelle Anweisung verantwortlich ist, nicht die gesamte Abfrage mit mehreren Anweisungen.
@@dataset_id STRING Lese- und Schreibzugriff ID des Standard-Datasets im aktuellen Projekt. Diese ID wird verwendet, wenn für ein Projekt in der Abfrage kein Dataset angegeben ist. Mit der Anweisung SET können Sie @@dataset_id einer anderen Dataset-ID im aktuellen Projekt zuweisen. Die Systemvariablen @@dataset_project_id und @@dataset_id können zusammen festgelegt und verwendet werden.
@@dataset_project_id STRING Lese- und Schreibzugriff ID des Standardprojekts, das verwendet wird, wenn kein Projekt für das in der Abfrage verwendete Dataset angegeben ist. Wenn @@dataset_project_id nicht oder auf NULL festgelegt ist, wird das die Abfrage ausführende Projekt (@@project_id) verwendet. Mit der Anweisung SET können Sie @@dataset_project_id einer anderen Projekt-ID zuweisen. Die Systemvariablen @@dataset_project_id und @@dataset_id können zusammen festgelegt und verwendet werden.
@@last_job_id STRING Schreibgeschützt Job-ID des letzten Jobs, der in der aktuellen Abfrage mit mehreren Anweisungen ausgeführt wurde, ohne den aktuellen Job. Wenn die Abfrage mit mehreren Anweisungen CALL-Anweisungen enthält, stammt dieser Job möglicherweise aus einer anderen Prozedur.
@@project_id STRING Schreibgeschützt ID des Projekts, das zum Ausführen der aktuellen Abfrage verwendet wurde. Im Kontext einer Prozedur bezieht sich @@project_id auf das Projekt, in dem die Abfrage mit mehreren Anweisungen ausgeführt wird, und nicht auf das Projekt, zu dem die Prozedur gehört.
@@query_label STRING Lese- und Schreibzugriff Abfragelabel zum Verknüpfen mit Abfragejobs in der aktuellen Abfrage oder Sitzung mit mehreren Anweisungen. Wenn dies in einer Abfrage festgelegt ist, haben alle nachfolgenden Abfragejobs im Skript oder in der Sitzung dieses Label. Wenn in einer Abfrage nicht festgelegt, lautet der Wert für diese Systemvariable NULL. Ein Beispiel zum Festlegen dieser Systemvariable finden Sie unter Jobs in einer Sitzung mit einem Label verknüpfen.
@@row_count INT64 Schreibgeschützt Bei Verwendung in einer Abfrage mit mehreren Anweisungen und wenn die vorherige Anweisung DML ist, wird die Anzahl der als Ergebnis dieser DML-Anweisung geänderten, eingefügten oder gelöschten Zeilen angegeben. Wenn die vorherige Anweisung eine MERGE-Anweisung ist, gibt @@row_count die kombinierte Gesamtzahl der eingefügten, entfernten und gelöschten Zeilen an. Dieser Wert ist NULL, wenn er nicht in einer Abfrage mit mehreren Anweisungen enthalten ist.
@@script.bytes_billed INT64 Schreibgeschützt Gesamtzahl der bisher im aktuell ausgeführten Abfragejob mit mehreren Anweisungen abgerechneten Byte. Dieser Wert ist NULL, wenn er nicht im Job enthalten ist.
@@script.bytes_processed INT64 Schreibgeschützt Gesamtzahl der Byte, die bisher im aktuell ausgeführten Abfragejob mit mehreren Anweisungen verarbeitet wurden. Dieser Wert ist NULL, wenn er nicht im Job enthalten ist.
@@script.creation_time TIMESTAMP Schreibgeschützt Erstellungszeit des derzeit ausgeführten Abfragejobs mit mehreren Anweisungen. Dieser Wert ist NULL, wenn er nicht im Job enthalten ist.
@@script.job_id STRING Schreibgeschützt Job-ID des derzeit ausgeführten Abfragejobs mit mehreren Anweisungen. Dieser Wert ist NULL, wenn er nicht im Job enthalten ist.
@@script.num_child_jobs INT64 Schreibgeschützt Anzahl der aktuell abgeschlossenen untergeordneten Jobs. Dieser Wert ist NULL, wenn er nicht im Job enthalten ist.
@@script.slot_ms INT64 Schreibgeschützt Anzahl der vom Skript bisher verwendeten Slot-Millisekunden. Dieser Wert ist NULL, wenn er nicht im Job enthalten ist.
@@session_id INT64 Schreibgeschützt ID der Sitzung, der die aktuelle Abfrage zugeordnet ist.
@@time_zone STRING Lese- und Schreibzugriff Die Standardzeitzone, die in zeitzonenabhängigen SQL-Funktionen verwendet wird, wenn keine Zeitzone als Argument angegeben ist. @@time_zone kann mit einer SET-Anweisung in einen beliebigen gültigen Zeitzonennamen geändert werden. Am Anfang jedes Skripts beginnt @@time_zone mit "UTC".

Aus Gründen der Abwärtskompatibilität sind Ausdrücke, die in einer OPTIONS- oder FOR SYSTEM TIME AS OF-Klausel verwendet werden, standardmäßig auf die America/Los_Angeles-Zeitzone festgelegt, während alle anderen Datums-/Uhrzeitausdrücke standardmäßig dieUTC-Zeitzone verwenden. Wenn zuvor in der Abfrage mit mehreren Anweisungen @@time_zone festgelegt wurde, gilt die ausgewählte Zeitzone für alle Datums-/Uhrzeitausdrücke, auch in den Klauseln OPTIONS und FOR SYSTEM TIME AS OF.

Zusätzlich zu den oben gezeigten Systemvariablen können Sie während der Ausführung einer Abfrage mit mehreren Anweisungen EXCEPTION-Systemvariablen verwenden. Weitere Informationen zu den EXCEPTION-Systemvariablen finden Sie in der Anweisung in der prozeduralen Sprache BEGIN...EXCEPTION.

Beispiele für die Verwendung von Systemvariablen in Abfragen mit mehreren Anweisungen finden Sie unter Variable festlegen.

Beispiele für die Verwendung von Systemvariablen in Sitzungen finden Sie unter Beispielsitzung.