Tarefa do SQL Server Agent - Agende diariamente, exceto 1 dia por mês

5

Precisamos executar uma tarefa diária usando o SQL Server Agent (SQL 2000), mas não queremos que ela seja executada no dia 22 de cada mês, pois há outros processos que só são executados nesse dia, que entrarão em conflito.

As configurações recorrentes no Agent não fornecem nenhuma opção de exclusão. Existe alguma maneira de conseguir isso?

    
por Shevek 12.03.2010 / 12:56

4 respostas

7

Coloque um passo como o primeiro passo no trabalho para verificar se o DATEPART (dd, getdate ()) = 22 e se ele emitir um sp_stopjob para parar o trabalho.

    
por 12.03.2010 / 21:05
0

Uma maneira de fazer isso é incluir uma verificação de data no script a ser executado e não executá-lo no dia 22.

Este é o único caminho embora?

    
por 12.03.2010 / 13:02
0

Bem, uma opção é semelhante à sua ideia existente. Crie outro trabalho que execute um script para verificar a data. Se for o dia 22, esse trabalho desativará seu trabalho diário (via SQL). Se não é o dia 22, permite o seu trabalho diário.

A única vantagem que isso pode ter em relação à sua sugestão é que ela mantém seu trabalho diário "puro" de qualquer lógica de data.

    
por 12.03.2010 / 16:03
0

Conclua um segundo trabalho no dia 22 que desativa o primeiro emprego:

exec msdb..sp_update_job @job_id = 0xC0923E444828064EA22B46B2C47A1363, @enabled = 0

E, em seguida, no dia 23, reative o trabalho:

exec msdb..sp_update_job @job_id = 0xC0923E444828064EA22B46B2C47A1363, @enabled = 1

    
por 12.03.2010 / 21:22

Tags