powershell - 在 PowerShell 中为 sqlcmd 指定具有多个语句的 SQL 脚本
问题描述
我需要跨多个(几个)数据库进行查询,以查看每个数据库上是否有特定的 SQL Server 代理作业名称。我原以为分号字符会分隔 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
}
推荐阅读
- angular - 角度代理配置
- webpack - webpack 创建 bundle 可能是下载的问题
- dart - 如何在颤振中舍入一个双精度值
- python - 逐帧读取并在 python 中使用 cv2 创建视频
- android - Sentry 的 Gradle 任务未编译
- android - 当我们在物理手机上运行android应用程序时是否也使用.dex文件?
- servicestack - 如何转换 SqlExpression
进入 SqlExpression 使用 ServiceStack OrmLite? - oracle-sqldeveloper - SQL Developer 缺少一个库
- kubernetes - Kubernetes 上的散景服务定期重启是否正常?
- c# - c#:在同一域上重新生成证书后无法调用 Web 服务