在 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
}
我需要查询多个(多个)数据库以查看每个数据库是否有特定的 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
}