a) Crie um proc que execute uma lista de procs com a
frequency
apropriada value, os executa e atualiza lastrun
coluna. - Crie um argumento
@frequency
nele, passe-o para fora. - Filtre sua lista de proc com este argumento
- Percorra a lista de procs com esta "frequência" e execute procs
por exemplo.
alter proc dbo.RunProcs
@Frequency varchar(50)
as
begin
declare @crProcs cursor
set @crProcs = cursor fast_forward for
select m.ProcName
from dbo.Maintainance m
where m.Frequency = @Frequency
order by 1
...
while @@fetch_status = 0
beign
begin try
exec @ProcName
...
update -> succeded
...
end try
begin catch
...
update -> failed
...
end catch
fetch ...
end
return 1
end
b) Crie trabalhos agendados para executar este proc
-
Criar um trabalho "PROCESSOS DIÁRIOS" , atribua um agendamento a esse trabalho para executá-lo todos os dias.
Adicione uma etapa de trabalho com T-SQL:exec dbo.RunProcs @Frequency = 'day'
-
Criar um trabalho "PROCESSOS SEMANAIS" , atribua um agendamento a este trabalho para executá-lo toda semana
Adicione uma etapa de trabalho com T-SQL:exec dbo.RunProcs @Frequency = 'week'
-
Crie um trabalho "PROCESSOS MENSAIS" , atribua um agendamento a este trabalho para executá-lo todos os meses
Adicione uma etapa de trabalho com T-SQL:exec dbo.RunProcs @Frequency = 'month'