在 PowerShell 中为 sqlcmd 指定具有多个语句的 SQL 脚本

Specifying SQL script with multiple statements for sqlcmd in PowerShell

我需要查询多个(多个)数据库以查看每个数据库是否有特定的 SQL 服务器代理作业名称。我原以为分号字符会分隔 SQL 语句,但它们的组合似乎不起作用。我坚持指定 `r`n 来分隔语句吗?有没有更好的方法?

@('DBDEV','DBTEST','DBPROD') |
    ForEach-Object {
        & sqlcmd -S $_ -q "SELECT '$_', name FROM msdb.dbo.sysjobs SJ WHERE name = 'THE_JOB_NAME'`r`nGO`r`nEXIT"
    }

AdminOfThings 和 vonPryz 提到的组合:

$query = @"
SELECT Name
FROM msdb.dbo.sysjobs SJ
WHERE name = 'THE_JOB_NAME'
"@

$databases = @('DBDEV','DBTEST','DBPROD')
foreach ($database in $databases) {
    Invoke-SqlCmd -ServerInstance $_ -Database 'msdb' -Query $query
}