a) 適切な frequency
で proc のリストを実行する proc を作成します 値、それらを実行し、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) このプロセスを実行するスケジュールされたジョブを作成します
<オール> <リ>ジョブ "DAILY PROCS" を作成します 、このジョブにスケジュールを割り当てて、毎日実行してください。
T-SQL でジョブ ステップを追加します:exec dbo.RunProcs @Frequency = 'day'
ジョブ 「WEEKLY PROCS」 を作成します 、毎週実行するようにこのジョブにスケジュールを割り当てます
T-SQL でジョブ ステップを追加します:exec dbo.RunProcs @Frequency = 'week'
ジョブ 「MONTHLY PROCS」 を作成します 、このジョブにスケジュールを割り当てて、毎月実行する
T-SQL でジョブ ステップを追加します:exec dbo.RunProcs @Frequency = 'month'