Loading…

Casos do Dia a Dia: Mensagens desnecessárias no History de um JOB

Olá Pessoal,

Hoje vou compartilhar com vocês uma dica rápida para evitar um problema que pego em alguns clientes.

Já perdi as contas de quantas vezes tentei encontrar um ERRO no History de um JOB, mas ele tinha um milhão de mensagens que me atrapalharam a ver a mensagem exata do erro. Exemplo:

Nesse exemplo, utilizei o script abaixo. Ele é bem simples, faz um loop com 100 iterações e em cada uma delas utiliza o comando PRINT para registrar uma mensagem no History do JOB. Por fim, faz uma divisão por zero para gerar um erro.

DECLARE @LOOP INT

SELECT @LOOP = 1

WHILE(@LOOP < 100)
BEGIN
PRINT 'TESTE MENSAGEM HISTORY JOB!'

SELECT @LOOP = @LOOP + 1
END

SELECT 1 / 0

Agora, comentando a linha do PRINT e executando o JOB novamente, temos o resultado abaixo:

Repare que dessa vez conseguimos identificar facilmente o erro, pois não temos nenhuma mensagem no History para nos atrapalhar.

Resumindo:

O ponto que quero ressaltar aqui é a necessidade de utilizar o comando PRINT no código. Muitas vezes, ao questionar o cliente sobre a utilização desse comando, ele informa que não era necessário e que foi usado apenas para teste/validação da rotina, mas que esqueceram de remover ao terminar.

Alguém pode falar que o PRINT pode ser utilizado para acompanhar a execução da rotina, mas nesse caso, acho que seria mais interessante utilizar uma tabela para armazenar esse resultado com a hora, mensagem e demais informações necessárias. Com isso, evitamos ter esse tipo de problema com o History do JOB.

Essa é uma questão bem simples mas pode facilitar sua vida na resolução de um problema.

Gostou dessa Dica?

Curta, comente, compartilhe com os coleguinhas…

Assine meu canal no Youtube e curta minha página no Facebook para receber Dicas de Leituras, Vídeos e Eventos sobre SQL Server.

Até a próxima.

Fabrício Lima

Microsoft Data Platform MVP

Consultor e Instrutor SQL Server

Trabalha com SQL Server desde 2006

Deixe uma resposta

%d blogueiros gostam disto: