系统变量参考文档
BigQuery 支持以下系统变量以进行多语句查询或会话。在查询执行期间,您可以使用系统变量来设置或检索信息,这与用户定义的过程语言变量类似。
名称 | 类型 | 读写或只读 | 说明 |
---|---|---|---|
@@current_job_id |
STRING |
只读 | 当前正在执行的作业的 ID。在多语句查询的上下文中,它返回负责当前语句的作业,而不是整个多语句查询。 |
@@dataset_id |
STRING |
读写 |
当前项目中默认数据集的 ID。如果没有为查询中的项目指定数据集,则使用此 ID。您可以使用 SET 语句将 @@dataset_id 分配给当前项目中的其他数据集 ID。系统变量 @@dataset_project_id 和 @@dataset_id 可以一起使用。 |
@@dataset_project_id |
STRING |
读写 |
没有为查询中使用的数据集指定默认项目时使用的默认项目的 ID。如果没有设置 @@dataset_project_id ,或将其设置为 NULL ,则使用查询执行项目 (@@project_id )。您可以使用 SET 语句将 @@dataset_project_id 分配给其他项目 ID。系统变量 @@dataset_project_id 和 @@dataset_id 可以一起使用。 |
@@last_job_id |
STRING |
只读 |
要在当前多语句查询中执行的最新作业(不包括当前作业)的 ID。如果多语句查询包含 CALL 语句,则此作业可能源自另一个过程。 |
@@project_id |
STRING |
只读 |
用于执行当前查询的项目的 ID。在过程的上下文中,@@project_id 是指运行多语句查询的项目,而不是拥有该过程的项目。 |
@@query_label |
STRING |
读写 |
与当前多语句查询或会话中的查询作业关联的查询标签。如果在查询中设置了该标签,则脚本或会话中的所有后续查询作业都将具有该标签。如果未在查询中设置该标签,则该系统变量的值为 NULL 。如需查看有关如何设置此系统变量的示例,请参阅将会话中的作业与标签相关联。 |
@@row_count |
INT64 |
只读 |
如果在多语句查询中使用并且前一个语句是 DML,则指定由于该 DML 语句而修改、插入或删除的行数。如果前一个语句是 MERGE 语句,则 @@row_count 表示插入、移除和删除的总行数。如果不在多语句查询中,则此值为 NULL 。 |
@@script.bytes_billed |
INT64 |
只读 |
到目前为止,正在执行的多语句查询作业中计费的总字节数。如果不在作业中,则此值为 NULL 。 |
@@script.bytes_processed |
INT64 |
只读 |
到目前为止,正在执行的多语句查询作业中处理的总字节数。如果不在作业中,则此值为 NULL 。 |
@@script.creation_time |
TIMESTAMP |
只读 |
当前正在执行的多语句查询作业的创建时间。如果不在作业中,则此值为 NULL 。 |
@@script.job_id |
STRING |
只读 |
当前正在执行的多语句查询作业的 ID。如果不在作业中,则此值为 NULL 。 |
@@script.num_child_jobs |
INT64 |
只读 |
当前已完成的子作业数。如果不在作业中,则此值为 NULL 。 |
@@script.slot_ms |
INT64 |
只读 |
到目前为止,脚本使用的槽毫秒数。
如果不在作业中,则此值为 NULL 。 |
@@session_id |
INT64 |
只读 | 与当前查询关联的会话的 ID。 |
@@time_zone |
STRING |
读写 |
在依赖时区的 SQL 函数中使用的默认时区(如果未将时区指定为参数)。
可通过对任何有效时区名称使用 SET 语句来修改 @@time_zone 。
在每个脚本的开头,@@time_zone 会以“UTC”开头。
|
为实现向后兼容性,OPTIONS
或 FOR SYSTEM TIME AS OF
子句中使用的表达式默认使用 America/Los_Angeles
时区,而所有其他日期/时间表达式默认使用 UTC
时区。如果之前已在多语句查询中设置了 @@time_zone
,则所选的时区将应用于所有日期/时间表达式,包括 OPTIONS
和 FOR SYSTEM TIME AS OF
子句。
除了上面显示的系统变量之外,您还可以在多语句执行期间使用 EXCEPTION
系统变量。如需详细了解 EXCEPTION
系统变量,请参阅过程语言语句 BEGIN...EXCEPTION。
如需查看有关如何在多语句查询中使用系统变量的示例,请参阅设置变量。
如需查看有关如何在会话中使用系统变量的示例,请参阅示例会话。