【发布时间】:2023-02-08 02:37:07
【问题描述】:
如何列出用于在 BigQuery 中创建视图的所有表? 例如,在 MSSQL/TSQL 中,您可以使用此代码列出它们。
select distinct schema_name(v.schema_id) as schema_name,
v.name as view_name,
schema_name(o.schema_id) as referenced_schema_name,
o.name as referenced_entity_name,
o.type_desc as entity_type
from sys.views v
join sys.sql_expression_dependencies d
on d.referencing_id = v.object_id
and d.referenced_id is not null
join sys.objects o
on o.object_id = d.referenced_id
where o.type_desc = 'USER_TABLE'
order by schema_name,
view_name;
-- 但是,我无法在 BigQuery 中重新创建这样的代码。
我知道在 BigQuery 中,您可以使用 INFORMATION_SCHEMA.TABLES 或 INFORMATION_SCHEMA.VIEWS 获取视图的 DDL,但它们似乎都没有依赖项。
目前我能想到的唯一方法是在 BigQuery 中编写一个解析器来识别 FROM 和 JOIN 语句之后的第一个和第二个 ` 标记,并将它们放在一个表中,但这对于一个简单的任务来说似乎太复杂了。以为我会在这里问,希望有更好的方法来写这个。
分析了 BigQuery 上的信息架构表,尝试获得与我的 MSSQL/TSQL 语句类似的结果
【问题讨论】:
标签: sql google-bigquery