【发布时间】:2021-05-18 20:59:17
【问题描述】:
我试图将“数据仓库”类别的所有 SQL Server 代理作业编写成脚本写入单个文件
我可以使用 PowerShell 来做到这一点,其中每个作业都会创建一个文件。
但是对于 ID = 100(或 Category : = 'Data Warehouse')类别下的所有 SQL Server 代理作业,我需要一个文件
我目前正在使用的代码:
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Smo') | Out-Null
$serverInstance = "APAAUHC7DB01VD"
$server = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $serverInstance
$jobs = $server.JobServer.Jobs
#$jobs = $server.JobServer.Jobs | where-object {$_.category -eq "100"}
if ($jobs -ne $null)
{
$serverInstance = $serverInstance.Replace("\", "-")
ForEach ( $job in $jobs )
{
$FileName = "C:\SQLBackup\SQLJobs\" + $serverInstance + "_" + $job.Name + ".sql"
$job.Script() | Out-File -filepath $FileName
}
}
【问题讨论】:
-
不.. 他们提到的代码创建了多个文件。我希望将所有 sql 代理作业脚本放入一个文件中。
标签: sql sql-server powershell sql-agent-job