Я создал задание для выполнения процедуры каждые 5 минут, но задание не имеет истории выполнения, а также, когда я выполняю exec sp_help_jobactivity @job_name = 'Update Subscription flags'
, я получаю пустой результат. Я также проверил sysjobschecdules
, который имеет 0 для next_run_date и время. Моя процедура скомпилирована и работает нормально, когда я выполняю ее вручную. Я не уверен, что именно здесь не так. Вот график:
--Add a Job to SQL Server Agent
GO
EXEC msdb.dbo.sp_add_job
@job_name = N'Update Subscription flags'; -- the job name
GO
GO
EXEC msdb.dbo.sp_add_jobstep
@job_name = N'Update Subscription flags' -- Job name specified in sp_add_job
,@step_name = N'Step - Set subscription flags to false' -- step name
,@database_name = 'db' --Database Name
,@command = N'EXEC UpdateSubscriptionFlags;' -- SQL Command
GO
--Attach server name. Not needed if you are creating job on same server.
EXEC msdb.dbo.sp_add_jobserver
@job_name = N'Update Subscription flags'
,@server_name = N'DESKTOP-3DR2LAE\SQLEXPRESS'; -- LOCAL by default
GO
GO
EXEC msdb.dbo.sp_add_schedule
@schedule_name = N'Daily - Every 5 Minutes' -- specify the schedule name
,@freq_type = 4 -- 4 indicates job is scheduled daily, refer msdn link for reference
,@freq_interval = 1 -- The days that a job is executed and depends on the value of
,@freq_subday_type = 4 --At specified time (At specific time/second/minutes/hours)
,@freq_subday_interval = 5 --Run every 5 min once the job is scheduled
GO
--Attach Created Job name to Schedule name
GO
EXEC msdb.dbo.sp_attach_schedule
@job_name = N'Update Subscription flags' -- Job Name
,@schedule_name = N'Daily - Every 5 Minutes' ; -- Schedule Name
GO