使用单个脚本在不同数据库上执行大量脚本

时间:2013-03-07 14:58:36

标签: sql sql-server-2008-r2

我必须在数据库服务器上执行大量脚本,我能够在批处理的帮助下执行它但是这个数据库服务器有多个数据库,所以对于我在下面提到的每个数据库提到的脚本 - EX -

表示数据库名称1 -

for %%G in (*.sql) do sqlcmd /S [Server] /d [A] -E   -i"%%G" pause

用于数据库名称2 -

for %%G in (*.sql) do sqlcmd /S [Server] /d [B] -E   -i"%%G" pause

有没有办法让我不必为每个数据库名称编写这个.bat文件?我想编写适用于所有数据库的单个脚本......

1 个答案:

答案 0 :(得分:1)

您可以将脚本更改为:

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

然后在启动bash脚本时传入服务器和数据库名称。例如,如果您的脚本名为“myscript.bat”,那么您可以通过

从命令行启动它
> myscript.bat server name