我目前使用sqlcmd在部署过程中在数据库上执行脚本。现在有了多个数据库,一个解决方案就是在批处理或foreach数据库中使用这个脚本。这个问题,它一次一个地将脚本应用于数据库。我需要一些可以节省时间的东西。
SQLCMD可以并行执行多个数据库上的脚本吗?如果没有,是否有我可以利用的脚本命令来完成此任务?
有类似的问题,但没有一个有正确的解决方案,或者它必须是一个在Parallel中执行的方法,这是主要目标。 SQL Multi Script工具正是这样做的,但它不是开源的,我更喜欢编写脚本。
有什么想法吗? 提前致谢。
答案 0 :(得分:1)
如果您使用SSMS运行SQLCMD脚本,则可以使用组查询再次运行多个服务器。我不完全确定它是否并行运行。 Look here for more information
答案 1 :(得分:1)
我能够使用以下方法完成此任务。
Foreach
数据库将生成一组SQLCMD命令foreach
脚本进行部署并将其放入批处理文件中。例如:S QLCMD_Commands_DB1.bat
和SQLCMD_Commands_DB2.bat
创建的Foreach
批处理文件将生成带有START命令的新主批处理文件。
START“”“SQLCMD_Commands_DB1.bat” START“”“SQLCMD_Commands_DB2.bat”
执行Master批处理文件,该文件将并行部署数据库脚本。我写了这个,它按预期工作。