a) Създайте процедура, която изпълнява списък от процедури с подходяща frequency
стойност, изпълнява ги и актуализира lastrun
колона.
- Направете аргумент
@frequency
в него, прекарайте го отвън. - Филтрирайте вашия списък с процедури с този аргумент
- Прегледайте списъка с процедури с тази "честота" и изпълнете процедурите
напр.
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) Създайте планирани задачи за изпълнение на тази процедура
-
Създайте задание „ДЕЙЛИ ПРОЦЕСИ“ , задайте график на тази задача, за да се изпълнява всеки ден.
Добавете стъпка на работа с T-SQL:
exec dbo.RunProcs @Frequency = 'day'
-
Създайте работа „СЕДМИЧНИ ПРОЦЕДУРИ“ , задайте график на това задание, за да се изпълнява всяка седмица
Добавете стъпка на работа с T-SQL:
exec dbo.RunProcs @Frequency = 'week'
-
Създайте работа „МЕСЕЧНИ ПРОЦЕДУРИ“ , задайте график на това задание, за да се изпълнява всеки месец
Добавете стъпка на работа с T-SQL:
exec dbo.RunProcs @Frequency = 'month'