【问题标题】:Running SQL script script/s on multiple databases at the same time (Parallel execution)同时在多个数据库上运行 SQL 脚本 script/s(并行执行)
【发布时间】:2013-12-18 16:18:13
【问题描述】:

我目前在部署过程中使用 sqlcmd 在数据库上执行脚本。现在对于多个数据库,一种解决方案是在批处理或 foreach 数据库中使用这个脚本。问题在于,它一次将脚本应用于数据库。我需要一些可以节省时间的东西。

SQLCMD 可以在多个数据库上并行执行脚本吗?如果没有,是否有我可以利用的脚本命令来完成此操作?

有类似的问题,但没有一个正确的解决方案或强调它必须是一种并行执行的方法,这是主要目标。 SQL Multi Script 工具正是这样做的,但它不是开源的,而且我更喜欢编写脚本。

有什么想法吗? 提前致谢。

【问题讨论】:

    标签: sql sql-server sql-server-2008 deployment sqlcmd


    【解决方案1】:

    如果您使用 SSMS 运行 SQLCMD 脚本,则可以使用组查询再次运行多个服务器。我不完全确定它是否并行运行。 Look here for more information

    【讨论】:

    • 谢谢。但是我从命令行使用 sqlcmd,而不是通过 SSMS。
    【解决方案2】:

    我能够使用以下方法完成此操作。

    1. 用户将设置在特定实例中部署到哪些数据库。
    2. Foreach 数据库,它将生成一组 SQLCMD 命令 foreach 脚本来部署并将其放置在批处理文件中。

    例如:SQLCMD_Commands_DB1.batSQLCMD_Commands_DB2.bat

    1. Foreach 创建的批处理文件随后将使用 START 命令生成一个新的主批处理文件。

      开始 "" "SQLCMD_Commands_DB1.bat" START "" "SQLCMD_Commands_DB2.bat"

    2. 执行主批处理文件,它将并行部署数据库脚本。我写了这个,它按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多