Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
同时在多个数据库上运行SQL脚本(并行执行)_Sql_Sql Server_Sql Server 2008_Deployment_Sqlcmd - Fatal编程技术网

同时在多个数据库上运行SQL脚本(并行执行)

同时在多个数据库上运行SQL脚本(并行执行),sql,sql-server,sql-server-2008,deployment,sqlcmd,Sql,Sql Server,Sql Server 2008,Deployment,Sqlcmd,我目前使用sqlcmd在部署过程中的数据库上执行脚本。现在对于多数据库,一个解决方案就是在批处理或foreach数据库中使用这个脚本。问题在于,它一次一个地将脚本应用于数据库。我需要一些能节省时间的东西 SQLCMD能否在多个数据库上并行执行脚本?如果没有,我是否可以利用脚本命令来完成此任务 也有类似的问题,但没有一个是正确的解决方案,或者强调它必须是一种并行执行的方法,这是主要目标。 SQLMultiScript工具正是这样做的,但它不是开源的,而且我更喜欢编写脚本 有什么想法吗? 提前谢谢

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

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

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

有什么想法吗?
提前谢谢

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

我可以通过以下方法实现这一点

  • 用户将在特定实例中设置要部署到的数据库
  • Foreach
    数据库它将生成一组SQLCMD命令
    Foreach
    脚本,以部署并将其放入批处理文件中
  • 例如:S
    QLCMD\u命令\u DB1.bat
    SQLCMD\u命令\u DB2.bat

  • Foreach
    使用创建的批处理文件将使用START命令生成新的主批处理文件

    启动“”“SQLCMD\u命令\u DB1.bat” 启动“”“SQLCMD_命令_DB2.bat”

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


  • 谢谢但是,我从命令行而不是通过SSMS使用sqlcmd。