我有一个dbscript.sql
文件,我想在一个命名的SQL Server实例上运行大约30个数据库。该脚本相当长(1000多行(,并且包含许多引号以适应使用MS_ForEachDB。我试过用大量的ctrl-h替换所有的撇号,但最终还是产生了其他错误。
我已经开始使用dbatools和powershell来完成这项任务,但我想知道是否有更简单的技巧可以将此脚本同时应用于多个数据库。
Dbatools是一个不错的选择,因为您可以使用管道将其传递到Invoke-DbaQuery命令中。例如:
Get-DbaDatabase -SqlInstance "server1", "server1nordwind", "server2" | Invoke-DbaQuery -File "C:scriptssqlrebuild.sql"