Чтобы проверить, включено или нет задание агента SQL Server, вы можете использовать следующий запрос в SQL Server:
SELECT name, is_enabled
FROM msdb.dbo.sysjobs
WHERE name = 'YourJobName'
Замените «YourJobName» фактическим названием вакансии, которую вы хотите проверить. Запрос вернет имя задания и его статус включения (1для включения, 0для отключения).
Вот несколько альтернативных способов проверить, включено ли задание агента SQL Server:
- Метод с использованием системной хранимой процедуры
sp_help_job:
EXEC msdb.dbo.sp_help_job
@job_name = 'YourJobName',
@job_aspect = 'JOB'
Это предоставит подробную информацию об указанном задании, включая его текущий статус.
- Метод с использованием системных таблиц
sysjobsиsysjobsteps:
SELECT j.name AS job_name, js.step_name, js.subsystem, js.command, js.last_run_date, js.last_run_time
FROM msdb.dbo.sysjobs AS j
JOIN msdb.dbo.sysjobsteps AS js ON j.job_id = js.job_id
WHERE j.name = 'YourJobName'
Этот запрос извлекает информацию об указанном задании, включая его отдельные шаги и соответствующие команды.
- Метод с использованием объектов управления PowerShell и SQL Server (SMO):
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Smo') | Out-Null
$server = New-Object Microsoft.SqlServer.Management.Smo.Server 'YourServerName'
$job = $server.JobServer.Jobs | Where-Object { $_.Name -eq 'YourJobName' }
if ($job -ne $null) {
Write-Output "Job '$($job.Name)' is $($job.IsEnabled)"
} else {
Write-Output "Job not found"
}
Замените 'YourServerName'и 'YourJobName'фактическими именами сервера и задания соответственно. Этот сценарий PowerShell использует библиотеку SMO для подключения к экземпляру SQL Server и получения статуса включения задания.