将 .sql 脚本部署到单个实例上的多个数据库的简单方法

Easy method for deploying .sql script to multiple databases on a single instance

我有一个 dbscript.sql 文件,我希望 运行 与位于命名 SQL 服务器实例上的大约 30 个数据库相对应。该脚本相当冗长(1000 多行)并且包含许多引号以使用 MS_ForEachDB 进行更改以适应。我曾尝试过大量 ctrl-h 替换所有撇号,但最终产生了其他错误。

我已经开始使用 dbatools 和 powershell 来完成这个任务,但我想知道是否有更简单的技巧可以让这个脚本同时应用于多个数据库。

Dbatools 是一个不错的选择,因为您可以使用管道将其传递到 Invoke-DbaQuery 命令中。一个例子是:

Get-DbaDatabase -SqlInstance "server1", "server1\nordwind", "server2" | Invoke-DbaQuery -File "C:\scripts\sql\rebuild.sql"