Usuário com melhor resposta
Problema em checklist de jobs

Pergunta
-
Estou seguindo um tutorial para montar um check list diário, já está praticamente tudo funcionando, menos a parte de jobs que falharam.
O script que peguei está igualzinho e não consigo mais entender o por que da problema.
Erro:Msg 8152, Level 16, State 2, Procedure sp_help_jobhistory_full, Line 50
String or binary data would be truncated.
(0 row(s) affected)
Segue o código:
if OBJECT_ID('Tempdb..#Result_History_Jobs') is not null drop table #Result_History_Jobs create table #Result_History_Jobs( Cod int identity(1,1),Instance_Id int, Job_Id varchar(255),Job_Name varchar(255),Step_Id int,Step_Name varchar(255), Sql_Message_Id int,Sql_Severity int,SQl_Message varchar(3990),Run_Status int, Run_Date varchar(20), Run_Time varchar(20),Run_Duration int,Operator_Emailed varchar(100),Operator_NetSent varchar(100), Operator_Paged varchar(100),Retries_Attempted int, Nm_Server varchar(100)) IF (OBJECT_ID('_CheckList_Jobs_Failed') IS NOT NULL) DROP TABLE _CheckList_Jobs_Failed declare @hoje varchar (8) declare @ontem varchar (8) set @ontem = convert (varchar(8),(dateadd (day, -1, getdate())),112) insert into #Result_History_Jobs exec Msdb.dbo.SP_HELP_JOBHISTORY @mode = 'FULL' , @start_run_date = @ontem select Job_Name, case when Run_Status = 0 then 'Failed' when Run_Status = 1 then 'Succeeded' when Run_Status = 2 then 'Retry (step only)' when Run_Status = 3 then 'Canceled' when Run_Status = 4 then 'In-progress message' when Run_Status = 5 then 'Unknown' end Status, cast(Run_Date + ' ' + right('00' + substring(Run_time,(len(Run_time)-5),2) ,2)+ ':' + right('00' + substring(Run_time,(len(Run_time)-3),2) ,2)+ ':' + right('00' + substring(Run_time,(len(Run_time)-1),2) ,2) as varchar) Dt_Execucao, right('00' + substring(cast(Run_Duration as varchar),(len(Run_Duration)-5),2) ,2)+ ':' + right('00' + substring(cast(Run_Duration as varchar),(len(Run_Duration)-3),2) ,2)+ ':' + right('00' + substring(cast(Run_Duration as varchar),(len(Run_Duration)-1),2) ,2) Run_Duration, SQL_Message into _CheckList_Jobs_Failed from #Result_History_Jobs where cast(Run_Date + ' ' + right('00' + substring(Run_time,(len(Run_time)-5),2) ,2)+ ':' + right('00' + substring(Run_time,(len(Run_time)-3),2) ,2)+ ':' + right('00' + substring(Run_time,(len(Run_time)-1),2) ,2) as datetime) >= @ontem + ' 17:00' --dia anterior no horário and Step_Id = 0 and Run_Status <> 1 order by Dt_Execucao
Caio Amante
Respostas
-
Perdão, foi eu que engoli um sapo.
Na verdade, você deve rodar apenas isto e verificar:
declare @hoje varchar (8) declare @ontem varchar (8) set @ontem = convert (varchar(8),(dateadd (day, -1, getdate())),112) exec Msdb.dbo.SP_HELP_JOBHISTORY @mode = 'FULL' , @start_run_date = @ontem
Antero Marques
- Marcado como Resposta Caio de Souza AmanteMVP terça-feira, 5 de junho de 2012 21:54
-
Parceiro descobri o que era.
O campo SQl_Message varchar(6990) eu aumentei e funcionou na hora.
Se não fosse sua ajuda.
Ponto para voce.
Abraço e muito obrigado.
conte comigo.
Caio Amante
- Marcado como Resposta Caio de Souza AmanteMVP terça-feira, 5 de junho de 2012 21:54
Todas as Respostas
-
Na hora de inserir os dados na tabela #Result_History_Jobs alguma informação é maior que o definido para o campo dela.
No seu script retire o "into _CheckList_Jobs_Failed" e rode.
Verifique se há alguma informação maior que o definido para ela no campo da tabela.
Antero Marques
-
Fazendo o que me solicitou deu o mesmo erro.
Msg 8152, Level 16, State 2, Procedure sp_help_jobhistory_full, Line 50
String or binary data would be truncated.
(0 row(s) affected)
O trecho que começa o erro é esse:
declare @hoje varchar (8)
declare @ontem varchar (8)
set @ontem = convert (varchar(8),(dateadd (day, -1, getdate())),112)
insert into #Result_History_Jobs
exec Msdb.dbo.SP_HELP_JOBHISTORY @mode = 'FULL' , @start_run_date = @ontemCaio Amante
-
Perdão, foi eu que engoli um sapo.
Na verdade, você deve rodar apenas isto e verificar:
declare @hoje varchar (8) declare @ontem varchar (8) set @ontem = convert (varchar(8),(dateadd (day, -1, getdate())),112) exec Msdb.dbo.SP_HELP_JOBHISTORY @mode = 'FULL' , @start_run_date = @ontem
Antero Marques
- Marcado como Resposta Caio de Souza AmanteMVP terça-feira, 5 de junho de 2012 21:54
-
-
Parceiro descobri o que era.
O campo SQl_Message varchar(6990) eu aumentei e funcionou na hora.
Se não fosse sua ajuda.
Ponto para voce.
Abraço e muito obrigado.
conte comigo.
Caio Amante
- Marcado como Resposta Caio de Souza AmanteMVP terça-feira, 5 de junho de 2012 21:54
-