Sql-Server
在相關條件滿足一次後,如何停止工作一天的剩餘時間?
我有一項工作每 5 分鐘執行一次以檢查 IF 條件。如果條件為真,它會發送一封電子郵件,如果不是,它不會做任何事情。
我的問題是,一旦 IF 條件為真,它將保持一整天,並且由於作業每 5 分鐘執行一次,它會在每 5 分鐘後繼續發送電子郵件。
電子郵件發送一次後,我需要整天停止工作。有沒有辦法這樣做?
我實際上在 mssqltips.com 上寫了一個類似的提示。對於您目前的情況,一般的想法是這樣的:
- 您可以在作業結束時添加額外的步驟,一旦您的主要作業步驟成功,作業將執行最後一步(即新添加的步驟)
- 如果您的作業在主要步驟中失敗,您的作業將退出,無需執行最後添加的步驟。
- 在您最後的工作步驟中,您將做一件事,即將您的工作計劃的開始日期更新為第二天。
use msdb declare @active_date int, @sch_name varchar(128); select @sch_name=s.name from msdb.dbo.sysschedules s inner join msdb.dbo.sysjobschedules js on js.schedule_id = s.schedule_id and js.job_id = $(ESCAPE_NONE(JOBID)); set @active_date = cast(replace(cast(cast(getdate()+1 as date) as varchar(10)), '-', '') as int); exec sp_update_schedule @name=@sch_name, @active_start_date= @active_date;
當然,我假設你的工作只有一個專門的時間表。該方法是完全獨立的,您不需要任何額外的外部工作來管理您目前的工作。