a) Erstellen Sie eine Prozedur, die eine Liste von Prozeduren mit angemessener frequency
durchläuft Wert, führt sie aus und aktualisiert lastrun
Säule.
- Machen Sie ein Argument
@frequency
drin, weiter nach außen. - Filtern Sie Ihre Prozessliste mit diesem Argument
- Liste der Procs mit dieser "Häufigkeit" durchlaufen und Procs ausführen
z. B.
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) Erstellen Sie geplante Jobs, um diesen Prozess auszuführen
-
Erstellen Sie einen Job "DAILY PROCS" , weisen Sie diesem Job einen Zeitplan zu, damit er jeden Tag ausgeführt wird.
Fügen Sie einen Jobschritt mit T-SQL hinzu:
exec dbo.RunProcs @Frequency = 'day'
-
Erstellen Sie einen Job "WEEKLY PROCS" , weisen Sie diesem Job einen Zeitplan zu, damit er jede Woche ausgeführt wird
Fügen Sie einen Jobschritt mit T-SQL hinzu:
exec dbo.RunProcs @Frequency = 'week'
-
Erstellen Sie einen Job "MONTHLY PROCS" , weisen Sie diesem Job einen Zeitplan zu, damit er jeden Monat ausgeführt wird
Fügen Sie einen Jobschritt mit T-SQL hinzu:
exec dbo.RunProcs @Frequency = 'month'