a) Skapa en proc som går igenom en lista med proc med lämplig frequency
värde, kör dem och uppdaterar lastrun
kolumn.
- Gör ett argument
@frequency
i den, skicka den utanför. - Filtrera din proc-lista med detta argument
- Bläddra igenom listan över processer med denna "frekvens" och kör processer
t.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) Skapa schemalagda jobb för att köra denna proc
-
Skapa ett jobb DAGLIGA PROC. , tilldela ett schema till det här jobbet så att det körs varje dag.
Lägg till ett jobbsteg med T-SQL:
exec dbo.RunProcs @Frequency = 'day'
-
Skapa ett jobb "WEEKLY PROCS" , tilldela ett schema till det här jobbet så att det körs varje vecka
Lägg till ett jobbsteg med T-SQL:
exec dbo.RunProcs @Frequency = 'week'
-
Skapa ett jobb "MÅNADLIGA PROCS" , tilldela ett schema till det här jobbet så att det körs varje månad
Lägg till ett jobbsteg med T-SQL:
exec dbo.RunProcs @Frequency = 'month'