运行目录中的所有 SQL 文件

新手上路,请多包涵

我有许多 .sql 文件,我必须运行这些文件才能将其他开发人员所做的更改应用于 SQL Server 2005 数据库。这些文件根据以下模式命名:

 0001 - abc.sql
0002 - abcef.sql
0003 - abc.sql
...

有没有办法一次性运行所有这些?

原文由 K.A.D. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 811
2 个回答

使用以下命令创建一个 .BAT 文件:

 for %%G in (*.sql) do sqlcmd /S servername /d databaseName -E -i"%%G"
pause

如果您需要提供用户名和密码

for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P
password -i"%%G"

请注意,提供用户/密码时不需要“-E”

将此 .BAT 文件放在要执行 .SQL 文件的目录中,双击 .BAT 文件即可!

原文由 Vijeth 发布,翻译遵循 CC BY-SA 4.0 许可协议

我知道这个问题更侧重于 SQL Server。我有同样的问题,但对于 PostgreSQL。该解决方案非常符合我的需要,所以我想我会为任何需要它的人分享我得到的东西:

 for %f in (*.sql) do psql -U [username] -d [database name] --command="\i %f";

我从包含我所有 sql 脚本的文件夹中运行它。

为了避免被提示输入密码,我不得不添加

*:*:*:[user]:[password]

到我的 pgpass.conf 文件中

%APPDATA%\Roaming\postgresql\

windows 上的文件夹。我必须自己创建文件。

原文由 Gabriel Kunkel 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进