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.