none
Consultar Jobs

Respostas

  • Olá Anderson

     

    /* Armazena a informação de cada Job para ser executada */

    select * from msdb..sysjobs

    /* Contém informações sobre a execução do job*/

    select * from msdb..sysjobhistory

    /* Contém informações para o job ser executado pelo Agent*/

    select * from msdb..sysjobschedules

    /* Armazena o relacionamento ou associação de um job individual com um ou mais servidores */

    select * from msdb..sysjobservers

    /* Contém a informação para cada step do Job ser executado pelo Agent */

    select * from msdb..sysjobsteps

     

     

    Espero ter contribuído

    quarta-feira, 20 de fevereiro de 2008 20:37
  • Boa tarde DrAlves

     

    Para você consultar os Jobs basta você fazer um SELECT na tabela SYSJOBS que está no banco de dados MSDB, qualquer dúvida retorne.

     

     

     

    SELECT * FROM MSDB..SYSJOBS

     

     

     

    Espero ter ajudado

     

    quarta-feira, 20 de fevereiro de 2008 20:10
  • DrAlves,

     

    O banco de sistema MSDB é responsável em armazenar as informações sobre os jobs, principalmente através da system table sysjobs.

     

    Completando a resposta de Anderson, para obter informações sobre os passes que cada job executa, utilize a system table sysjobsteps.

     

    Veja o exemplo:

     

    Code Snippet
    Select * from msdb..sysjobsteps

     

     

     

    quarta-feira, 20 de fevereiro de 2008 20:14
  • DrAlves,

     

    Para obter informações sobre os schedules, faça o select na system table sysjobschedules:

     

    select * from msdb..sysjobschedules

     

    Se quizer saber o histórico de execução de cada job, utilize a system table sysjobhistory:

     

    select * from msdb..sysjobhistory

    quarta-feira, 20 de fevereiro de 2008 20:20

Todas as Respostas

  • cara nao conheco uma forma de consultar isso nao, chegou a olhar um criado pela ferramenta e outro pela mao gerando o script dos dois para tentar analisar as semanticas tipo qual a diferenca ?

     

    quarta-feira, 20 de fevereiro de 2008 19:56
  • DrAlves,

     

    Mas que tipo de informações sobre o job você deseja?

    quarta-feira, 20 de fevereiro de 2008 20:02
  • Consultar o que estão fazendo e qual o horário e periodicidade que estão schedulados.

    quarta-feira, 20 de fevereiro de 2008 20:09
  • Boa tarde DrAlves

     

    Para você consultar os Jobs basta você fazer um SELECT na tabela SYSJOBS que está no banco de dados MSDB, qualquer dúvida retorne.

     

     

     

    SELECT * FROM MSDB..SYSJOBS

     

     

     

    Espero ter ajudado

     

    quarta-feira, 20 de fevereiro de 2008 20:10
  • DrAlves,

     

    O banco de sistema MSDB é responsável em armazenar as informações sobre os jobs, principalmente através da system table sysjobs.

     

    Completando a resposta de Anderson, para obter informações sobre os passes que cada job executa, utilize a system table sysjobsteps.

     

    Veja o exemplo:

     

    Code Snippet
    Select * from msdb..sysjobsteps

     

     

     

    quarta-feira, 20 de fevereiro de 2008 20:14
  • Ok Anderson, funcionou.

     

    Como faço para pegar o que ele está fazendo e identificar a hora que vai executar.

    quarta-feira, 20 de fevereiro de 2008 20:15
  • DrAlves,

     

    Para obter informações sobre os schedules, faça o select na system table sysjobschedules:

     

    select * from msdb..sysjobschedules

     

    Se quizer saber o histórico de execução de cada job, utilize a system table sysjobhistory:

     

    select * from msdb..sysjobhistory

    quarta-feira, 20 de fevereiro de 2008 20:20
  • Olá Anderson

     

    /* Armazena a informação de cada Job para ser executada */

    select * from msdb..sysjobs

    /* Contém informações sobre a execução do job*/

    select * from msdb..sysjobhistory

    /* Contém informações para o job ser executado pelo Agent*/

    select * from msdb..sysjobschedules

    /* Armazena o relacionamento ou associação de um job individual com um ou mais servidores */

    select * from msdb..sysjobservers

    /* Contém a informação para cada step do Job ser executado pelo Agent */

    select * from msdb..sysjobsteps

     

     

    Espero ter contribuído

    quarta-feira, 20 de fevereiro de 2008 20:37
  • Basicamente é o seguinte dá uma olhada no exemplo:

     

     

    Select
     sysjobs.Name as NomeJob,
     Case
      When sysjobs.Enabled = 1 then 'Habilitado'
     Else
      'Desabilitado'
     End as Status,
     sysjobs.Description as Descricao,
     sysjobs.date_created as DataCriacao,
     sysjobs.date_modified as DataAlteracao,
     Case
      When sysjobschedules.freq_type = 1 then 'Uma vez'
      When sysjobschedules.freq_type = 4 then 'Diariamente'
      When sysjobschedules.freq_type = 8 then 'Semanalmente'
      When sysjobschedules.freq_type = 16 then 'Mensalmente'
      When sysjobschedules.freq_type = 32 then 'Mensalmente (Relativo)'
      When sysjobschedules.freq_type = 64 then 'Quando SQL Server Agent é iniciado'
     End as Frequencia,
     SubString(cast(sysjobschedules.active_start_date as varchar),5,2) + '/' + SubString(cast(sysjobschedules.active_start_date as varchar),7,2) + '/' + SubString(cast(sysjobschedules.active_start_date as varchar),1,4) as DataProximaExecucao,
     Case
      When Len(sysjobschedules.active_start_time) = 5 then '0' + Substring(Cast(sysjobschedules.active_start_time as varchar),1,1) + ':' + Substring(Cast(sysjobschedules.active_start_time as varchar),2,2) + ':' + Substring(Cast(sysjobschedules.active_start_time as varchar),4,2)
      When Len(sysjobschedules.active_start_time) = 5 then Substring(Cast(sysjobschedules.active_start_time as varchar),1,2) + ':' + Substring(Cast(sysjobschedules.active_start_time as varchar),3,2) + ':' + Substring(Cast(sysjobschedules.active_start_time as varchar),5,2)
     Else
      '00:00:00'
     End  as HoraProximaExecucao
    From msdb..sysjobs
    Inner Join msdb..sysjobschedules On sysjobschedules.job_id = sysjobs.job_id
    GO

     

     

     

    Espero ter ajudado

    quarta-feira, 20 de fevereiro de 2008 20:46
  • Só fazendo um pequeno ajuste na consulta acima.

    SELECT sysjobs.NAME                                                       AS 
           NomeJob, 
           CASE 
             WHEN sysjobs.enabled = 1 THEN 'Habilitado' 
             ELSE 'Desabilitado' 
           END                                                                AS 
           Status, 
           sysjobs.date_created                                               AS 
           DataCriacao, 
           sysjobs.date_modified                                              AS 
           DataAlteracao, 
           CASE 
             WHEN sysschedules.freq_type = 1 THEN 'Uma vez' 
             WHEN sysschedules.freq_type = 4 THEN 'Diariamente' 
             WHEN sysschedules.freq_type = 8 THEN 'Semanalmente' 
             WHEN sysschedules.freq_type = 16 THEN 'Mensalmente' 
             WHEN sysschedules.freq_type = 32 THEN 'Mensalmente (Relativo)' 
             WHEN sysschedules.freq_type = 64 THEN 
             'Quando SQL Server Agent é iniciado' 
           END                                                                AS 
           Frequencia, 
           Substring(Cast(sysschedules.active_start_date AS VARCHAR), 5, 2) 
           + '/' 
           + Substring(Cast(sysschedules.active_start_date AS VARCHAR), 7, 2) 
           + '/' 
           + Substring(Cast(sysschedules.active_start_date AS VARCHAR), 1, 4) AS 
           DataProximaExecucao, 
           CASE 
             WHEN Len(sysschedules.active_start_time) = 5 THEN 
             '0' 
             + Substring(Cast(sysschedules.active_start_time AS VARCHAR), 1, 1) 
             + ':' 
             + Substring(Cast(sysschedules.active_start_time AS VARCHAR), 2, 2) 
             + ':' 
             + Substring(Cast(sysschedules.active_start_time AS VARCHAR), 4, 2) 
             WHEN Len(sysschedules.active_start_time) = 5 THEN 
             Substring(Cast(sysschedules.active_start_time AS VARCHAR), 1, 2) 
             + ':' 
             + Substring(Cast(sysschedules.active_start_time AS VARCHAR), 3, 2) 
             + ':' 
             + Substring(Cast(sysschedules.active_start_time AS VARCHAR), 5, 2) 
             ELSE '00:00:00' 
           END                                                                AS 
           HoraProximaExecucao, 
           sysjobs.notify_email_operator_id 
           [IdOpe], 
           sysschedules.NAME 
           [NomeAgend], 
           CASE 
             WHEN sysschedules.enabled = 1 THEN 'Habilitado' 
             ELSE 'Desabilitado' 
           END 
           [StatusAgend] 
    FROM   msdb..sysjobs 
           LEFT JOIN msdb..sysjobschedules 
                  ON sysjobschedules.job_id = sysjobs.job_id 
           LEFT JOIN sysschedules 
                  ON sysjobschedules.schedule_id = sysschedules.schedule_id 
    
    go 

    terça-feira, 15 de maio de 2018 18:08