You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Snowflake中批量获取指定Schema下所有表的DDL

在Snowflake中批量获取指定Schema下所有表的DDL

方法1:批量生成单表DDL(每行对应一张表)

通过查询Snowflake系统视图INFORMATION_SCHEMA.TABLES,结合GET_DDL函数可一次性获取指定库和Schema下所有表的DDL:

-- 替换占位符为实际的数据库名和Schema名
SELECT GET_DDL('TABLE', CONCAT_WS('.', TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME)) AS TABLE_DDL
FROM YOUR_DATABASE.INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'YOUR_SCHEMA'
AND TABLE_TYPE = 'BASE TABLE'; -- 仅获取普通表,如需包含视图可移除该条件

执行后,结果集每一行对应一张表的完整DDL语句。

方法2:拼接所有表的DDL为单个结果

如果希望把所有表的DDL合并成一个字符串(方便一次性复制),可使用LISTAGG函数:

-- 替换占位符为实际的数据库名和Schema名
SELECT LISTAGG(GET_DDL('TABLE', CONCAT_WS('.', TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME)), '\n\n') AS ALL_TABLES_DDL
FROM YOUR_DATABASE.INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'YOUR_SCHEMA'
AND TABLE_TYPE = 'BASE TABLE';

注意事项

  • 请将语句中的YOUR_DATABASE和YOUR_SCHEMA替换为目标数据库和Schema名称
  • 若需要获取视图的DDL,可将TABLE_TYPE条件改为TABLE_TYPE = 'VIEW',或直接移除TABLE_TYPE条件同时获取表和视图的DDL
  • 确保当前执行用户拥有目标表的SELECT权限以及生成DDL的权限

内容的提问来源于stack exchange,提问作者kathija

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:45:36