{"id":8029,"date":"2017-11-21T11:01:08","date_gmt":"2017-11-21T13:01:08","guid":{"rendered":"http:\/\/www.fabriciolima.net\/?p=8029"},"modified":"2017-11-21T11:01:08","modified_gmt":"2017-11-21T13:01:08","slug":"casos-do-dia-a-dia-mensagens-desnecessarias-no-history-de-um-job","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2017\/11\/21\/casos-do-dia-a-dia-mensagens-desnecessarias-no-history-de-um-job\/","title":{"rendered":"Casos do Dia a Dia: Mensagens desnecess\u00e1rias no History de um JOB"},"content":{"rendered":"<p>Ol\u00e1 Pessoal,<\/p>\n<p>Hoje vou compartilhar com voc\u00eas uma\u00a0dica r\u00e1pida para evitar um problema que pego em alguns clientes.<\/p>\n<p>J\u00e1 perdi as contas de quantas vezes tentei <strong>encontrar um ERRO<\/strong>\u00a0<strong>no History de um JOB, <\/strong>mas ele tinha um milh\u00e3o de mensagens que me atrapalharam a ver a mensagem exata do erro. Exemplo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8034\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_C_PRINT.png\" alt=\"\" width=\"683\" height=\"528\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_C_PRINT.png 683w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_C_PRINT-300x232.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_C_PRINT-410x317.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_C_PRINT-100x77.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_C_PRINT-275x213.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_C_PRINT-20x15.png 20w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><\/p>\n<p>Nesse exemplo, utilizei o script abaixo. Ele \u00e9 bem simples, faz um loop com 100 itera\u00e7\u00f5es e em cada uma delas utiliza o comando <strong>PRINT<\/strong> para registrar uma mensagem\u00a0no History do JOB. Por fim, faz uma <strong>divis\u00e3o por zero<\/strong>\u00a0para gerar um erro.<\/p>\n<pre class=\"lang:tsql decode:true \">DECLARE @LOOP INT\r\n\r\nSELECT @LOOP = 1\r\n\r\nWHILE(@LOOP &lt; 100)\r\nBEGIN\r\nPRINT 'TESTE MENSAGEM HISTORY JOB!'\r\n\r\nSELECT @LOOP = @LOOP + 1\r\nEND\r\n\r\nSELECT 1 \/ 0<\/pre>\n<p>Agora, comentando a linha do PRINT e executando o JOB novamente, temos o resultado abaixo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8035\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_S_PRINT.png\" alt=\"\" width=\"678\" height=\"388\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_S_PRINT.png 678w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_S_PRINT-300x172.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_S_PRINT-410x235.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_S_PRINT-100x57.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_S_PRINT-275x157.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/08\/MENSAGEM_JOB_S_PRINT-20x11.png 20w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/p>\n<p>Repare que\u00a0dessa vez conseguimos identificar facilmente o erro, pois n\u00e3o temos nenhuma mensagem no History para nos atrapalhar.<\/p>\n<p><strong>Resumindo:<\/strong><\/p>\n<p>O ponto que quero ressaltar aqui \u00e9 a <strong>necessidade de utilizar o comando PRINT<\/strong> no c\u00f3digo. Muitas vezes, ao questionar o cliente sobre a\u00a0utiliza\u00e7\u00e3o desse comando, ele informa que n\u00e3o era necess\u00e1rio e que foi usado apenas para teste\/valida\u00e7\u00e3o da rotina, mas que esqueceram de remover\u00a0ao terminar.<\/p>\n<p>Algu\u00e9m pode falar que o <strong>PRINT<\/strong> pode ser\u00a0utilizado para acompanhar a execu\u00e7\u00e3o da rotina, mas nesse caso, acho que seria mais interessante utilizar uma tabela para armazenar esse resultado com a hora, mensagem e demais informa\u00e7\u00f5es necess\u00e1rias. Com isso, evitamos ter esse tipo de problema com o History do JOB.<\/p>\n<p>Essa \u00e9 uma quest\u00e3o bem simples\u00a0mas pode facilitar sua vida na resolu\u00e7\u00e3o de um problema.<\/p>\n<p><b>Gostou dessa Dica?<\/b><\/p>\n<p>Curta, comente, compartilhe com os coleguinhas\u2026<\/p>\n<p>Assine meu canal no <a href=\"https:\/\/www.youtube.com\/channel\/UCeBRAO_LLrUdSrOXIywjzRA\" target=\"_blank\" rel=\"noopener noreferrer\">Youtube<\/a> e curta minha p\u00e1gina no <a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\" rel=\"nofollow external noopener noreferrer\" data-wpel-link=\"external\">Facebook<\/a> para receber Dicas de Leituras, V\u00eddeos e Eventos sobre SQL Server.<\/p>\n<p>At\u00e9 a pr\u00f3xima.<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>Microsoft Data Platform MVP<\/p>\n<p>Consultor e Instrutor SQL Server<\/p>\n<p>Trabalha com SQL Server desde 2006<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 Pessoal, Hoje vou compartilhar com voc\u00eas uma\u00a0dica r\u00e1pida para evitar um problema que pego em alguns clientes. J\u00e1 perdi as contas de quantas vezes tentei encontrar um ERRO\u00a0no History de um JOB, mas ele tinha um milh\u00e3o de mensagens que me atrapalharam a ver a mensagem exata do erro. Exemplo: Nesse exemplo, utilizei o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[3,6],"tags":[1593,1590,1592,1589,1591,1594],"class_list":["post-8029","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-casos-do-dia-a-dia","tag-comando-print","tag-falha-job-sql-server","tag-history-job-sql-server","tag-job-sqlserver","tag-mensagem-erro-job","tag-print-sql-server"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/8029","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/comments?post=8029"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/8029\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=8029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=8029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=8029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}