如何使用 Snowsql 将一个 SQL 脚本用于多个 database/warehouse?

how can I use one SQL script for multiple database/warehouse using Snowsql?

我已经在 SQL 脚本中为数据库和模式定义了变量。那么有什么办法可以同时在不同的数据库和模式中 运行 SQL 编写脚本吗?

我的 SQL 脚本看起来像这样,

use database &{db};
use schema &{sc};

create table a_multi_test
(
id int
, name varchar
);

这里是我在 powershell 中 运行,

snowsql -c my_conn -f ...\multi_test.sql -D  db=dev -D  sc=schm  -D sc=schm2;

我能够成功创建 table,但仅限于第二个 (schm2) 模式。它选择了第二个模式而不是两者。另外,我怎样才能为仓库定义变量呢?或者我只能通过设置连接参数在配置文件中做到这一点?请帮助我解决这个问题,并随时提出有关 Snowsql 变量的任何好的文档。

谢谢!

你为什么不 运行 脚本两次?如果您两次指定相同的变量名称,SnowSQL 将只取您所看到的最后一个 (schm2)。

以下是如何使用 shell 脚本同时 运行 它们:

snowsql -c my_conn -f ...\multi_test.sql -D  db=dev -D sc=schm1& \
snowsql -c my_conn -f ...\multi_test.sql -D  db=dev -D sc=schm2&