Compartilhar via


sp_help_jobhistory (Transact-SQL)

Aplica-se a: SQL Server

Fornece informações sobre os trabalhos para servidores no domínio de administração multisservidor.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_help_jobhistory
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @step_id = ] step_id ]
    [ , [ @sql_message_id = ] sql_message_id ]
    [ , [ @sql_severity = ] sql_severity ]
    [ , [ @start_run_date = ] start_run_date ]
    [ , [ @end_run_date = ] end_run_date ]
    [ , [ @start_run_time = ] start_run_time ]
    [ , [ @end_run_time = ] end_run_time ]
    [ , [ @minimum_run_duration = ] minimum_run_duration ]
    [ , [ @run_status = ] run_status ]
    [ , [ @minimum_retries = ] minimum_retries ]
    [ , [ @oldest_first = ] oldest_first ]
    [ , [ @server = ] N'server' ]
    [ , [ @mode = ] 'mode' ]
[ ; ]

Argumentos

@job_id [ = ] 'job_id'

O número de identificação do trabalho. @job_id é uniqueidentifier, com um padrão de NULL.

@job_name [ = ] N'job_name'

O nome do trabalho. @job_name é sysname, com um padrão de NULL.

@step_id [ = ] step_id

O número de identificação da etapa. @step_id é int, com um padrão de NULL.

@sql_message_id [ = ] sql_message_id

O número de identificação da mensagem de erro retornada pelo SQL Server ao executar o trabalho. @sql_message_id é int, com um padrão de NULL.

@sql_severity [ = ] sql_severity

O nível de severidade da mensagem de erro retornada pelo Microsoft SQL Server ao executar o trabalho. @sql_severity é int, com um padrão de NULL.

@start_run_date [ = ] start_run_date

A data em que o trabalho foi iniciado. @start_run_date é int, com um padrão de NULL. @start_run_date deve ser inserido no formulário yyyyMMdd, onde yyyy é um ano de quatro caracteres, MM é um nome de mês de dois caracteres e dd é um nome de dia de dois caracteres.

@end_run_date [ = ] end_run_date

A data em que o trabalho foi concluído. @end_run_date é int, com um padrão de NULL. @end_run_date deve ser inserido no formulário yyyyMMdd, onde yyyy é um ano de quatro caracteres, MM é um nome de mês de dois caracteres e dd é um nome de dia de dois caracteres.

@start_run_time [ = ] start_run_time

A hora em que o trabalho foi iniciado. @start_run_time é int, com um padrão de NULL. @start_run_time deve ser inserido no formulário HHmmss, onde HH é uma hora do dia de dois caracteres, mm é um minuto do dia de dois caracteres e ss é um segundo do dia de dois caracteres.

@end_run_time [ = ] end_run_time

A hora em que a execução do trabalho foi concluída. @end_run_time é int, com um padrão de NULL. @end_run_time deve ser inserido no formulário HHmmss, onde HH é uma hora do dia de dois caracteres, mm é um minuto do dia de dois caracteres e ss é um segundo do dia de dois caracteres.

@minimum_run_duration [ = ] minimum_run_duration

O período de tempo mínimo para a conclusão do trabalho. @minimum_run_duration é int, com um padrão de NULL. @minimum_run_duration deve ser inserido no formulário HHmmss, onde HH é uma hora do dia de dois caracteres, mm é um minuto do dia de dois caracteres e ss é um segundo do dia de dois caracteres.

@run_status [ = ] run_status

O status de execução do trabalho.@run_status é int e pode ser um desses valores.

Valor Descrição
0 Com falha
1 Com sucesso
2 Repetir (somente a etapa)
3 Canceled
4 Mensagem em andamento
5 Desconhecido

@minimum_retries [ = ] minimum_retries

O número mínimo de horas para repetir a execução de um trabalho. @minimum_retries é int, com um padrão de NULL.

@oldest_first [ = ] oldest_first

Se deve apresentar a saída com os trabalhos mais antigos primeiro. @oldest_first é int, com um padrão de 0.

  • 0 apresenta os empregos mais recentes primeiro.
  • 1 apresenta os empregos mais antigos primeiro.

@server [ = ] N'servidor'

O nome do servidor no qual o trabalho foi executado. @server é sysname, com um padrão de NULL.

@mode [ = ] 'modo'

Especifica se o SQL Server imprime todas as colunas no conjunto de resultados (FULL) ou um resumo (SUMMARY) das colunas. @mode é varchar(7), com um padrão de SUMMARY.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Conjunto de resultados

A lista de colunas real depende do valor de @mode. O conjunto mais abrangente de colunas é mostrado na tabela a seguir e é retornado quando @mode é FULL.

Nome da coluna Tipo de dados Descrição
instance_id int Número de identificação de entrada de histórico.
job_id uniqueidentifier Número de identificação do trabalho.
job_name sysname Nome do trabalho.
step_id int Número de identificação da etapa (0 para um histórico de trabalho).
step_name sysname Nome da etapa (NULL para um histórico de trabalhos).
sql_message_id int Para uma etapa Transact-SQL, o número de erro Transact-SQL mais recente encontrado durante a execução do comando.
sql_severity int Para uma etapa Transact-SQL, a maior gravidade de erro Transact-SQL encontrada durante a execução do comando.
message nvarchar(1024) Mensagem de histórico de trabalho ou de etapa.
run_status int Resultado do trabalho ou da etapa.
run_date int Data em que o trabalho ou a etapa começaram a ser executados.
run_time int Hora em que o trabalho ou a etapa começaram a ser executados.
run_duration int Tempo decorrido na execução do job ou etapa no HHmmss formato.
operator_emailed nvarchar(20) Operador que recebeu um e-mail sobre este trabalho (é NULL para histórico de etapas).
operator_netsent nvarchar(20) Operador que recebeu uma mensagem de rede sobre este trabalho (é NULL para histórico de etapas).
operator_paged nvarchar(20) Operador que foi paginado sobre este trabalho (é NULL para histórico de etapas).
retries_attempted int Número de vezes que a etapa foi repetida (sempre 0 para um histórico de trabalhos).
server nvarchar(30) Servidor no qual a etapa ou o trabalho são executados. É sempre (local).

Comentários

sp_help_jobhistory Retorna um relatório com o histórico dos trabalhos agendados especificados. Se nenhum parâmetro for especificado, o relatório conterá o histórico para todos os trabalhos agendados.

Permissões

Esse procedimento armazenado pertence à função db_owner . Você pode conceder EXECUTE permissões para qualquer usuário, mas essas permissões podem ser substituídas durante uma atualização do SQL Server.

Outros usuários devem receber uma das seguintes funções de banco de dados fixas do msdb SQL Server Agent no banco de dados:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Para obter detalhes sobre as permissões dessas funções, consulte Funções de banco de dados fixas do SQL Server Agent.

Os membros da função de banco de dados SQLAgentUserRole só podem exibir o histórico de trabalhos que possuem.

Exemplos

R. Listar todas as informações de um trabalho

O exemplo a seguir lista todas as informações de trabalho para o trabalho NightlyBackups.

USE msdb;
GO

EXEC dbo.sp_help_jobhistory
    @job_name = N'NightlyBackups';
GO

B. Listar informações para trabalhos que correspondem a determinadas condições

O exemplo a seguir imprime todas as colunas e todas as informações de trabalho para quaisquer trabalhos e etapas de trabalho que falharam com uma mensagem de erro de 50100 (uma mensagem de erro definida pelo usuário) e uma severidade de 20.

USE msdb;
GO

EXEC dbo.sp_help_jobhistory
    @sql_message_id = 50100,
    @sql_severity = 20,
    @run_status = 0,
    @mode = N'FULL';
GO