a) Créer un proc qui parcourt la liste des procs avec la frequency
appropriée valeur, les exécute et met à jour lastrun
colonne.
- Créez un argument
@frequency
dedans, faites-le passer à l'extérieur. - Filtrer votre liste de proc avec cet argument
- Parcourir la liste des procs avec cette "fréquence" et exécuter les procs
ex.
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) Créez des tâches planifiées pour exécuter cette procédure
-
Créer une tâche "PROCÉDURES QUOTIDIENNES" , attribuez une planification à cette tâche pour qu'elle s'exécute tous les jours.
Ajouter une étape de travail avec T-SQL :
exec dbo.RunProcs @Frequency = 'day'
-
Créer une tâche "PROCÉDURES HEBDOMADAIRES" , attribuez une planification à cette tâche pour qu'elle s'exécute chaque semaine
Ajouter une étape de travail avec T-SQL :
exec dbo.RunProcs @Frequency = 'week'
-
Créer une tâche "PROCÉDURES MENSUELLES" , attribuez une planification à cette tâche pour qu'elle s'exécute tous les mois
Ajouter une étape de travail avec T-SQL :
exec dbo.RunProcs @Frequency = 'month'