Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Managed Instance
Contém informações sobre a execução de trabalhos agendados pelo SQL Server Agent.
Observação
Na maioria dos casos, os dados só são atualizados após a conclusão do passo do trabalho, e a tabela normalmente não contém registos dos passos do trabalho que estejam em curso. Em alguns casos, os processos subjacentes fornecem informações sobre as etapas do trabalho em andamento.
Esta tabela está armazenada na msdb base de dados.
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
instance_id |
int | Identificador único para a linha. |
job_id |
uniqueidentifier | ID do trabalho. |
step_id |
int | Identificação do passo no trabalho. |
step_name |
sysname | Nome da etapa. |
sql_message_id |
int | ID de qualquer mensagem de erro SQL Server deveria se o trabalho falhasse. |
sql_severity |
int | Gravidade de qualquer erro do SQL Server. |
message |
Nvarchar(4000) | Texto, se houver, de um erro no SQL Server. |
run_status |
int | Estado da execução do trabalho:0 = Falhou1 = Sucedeu2 = Retentativa3 = Cancelado4 = Em Progresso |
run_date |
int | Data a execução da tarefa ou início do passo, em yyyyMMdd formato de formato. Para uma história em progresso, este valor é a data e hora em que a história foi escrita. |
run_time |
int | Hora em que o trabalho ou passo começou no HHmmss formato. |
run_duration |
int | Tempo decorrido na execução da tarefa ou do formato step HHmmss in períodos de tempo até 24 horas. Encontre código para traduzir durações de longa duração no exemplo. |
operator_id_emailed |
int | Identificação do operador notificada quando o trabalho foi concluído. |
operator_id_netsent |
int | ID do operador notificado por uma mensagem quando o trabalho foi concluído. |
operator_id_paged |
int | ID do operador notificado por pager quando o trabalho foi concluído. |
retries_attempted |
int | Número de tentativas de repetição para a tarefa ou etapa. |
server |
sysname | Nome do servidor onde a tarefa foi executada. |
Examples
A consulta Transact-SQL seguinte converte as run_date colunas e run_time numa coluna de data-hora chamada LastRunStartDateTime. A run_duration coluna é convertida numa coluna int chamada LastRunDurationSeconds. Estas duas colunas são então usadas para calcular o LastRunFinishDateTime. A run_duration coluna é também convertida para um formato mais fácil de utilizar. Podes executar o script no SQL Server Management Studio ou Azure Data Studio.
SET NOCOUNT ON;
SELECT sj.name AS Name,
sh.step_name AS StepName,
shp.LastRunStartDateTime,
DATEADD(SECOND, shp.LastRunDurationSeconds, shp.LastRunStartDateTime) AS LastRunFinishDateTime,
shp.LastRunDurationSeconds,
CASE
WHEN sh.run_duration > 235959
THEN CAST((CAST(LEFT(CAST(sh.run_duration AS VARCHAR),
LEN(CAST(sh.run_duration AS VARCHAR)) - 4) AS INT) / 24) AS VARCHAR)
+ '.' + RIGHT('00' + CAST(CAST(LEFT(CAST(sh.run_duration AS VARCHAR),
LEN(CAST(sh.run_duration AS VARCHAR)) - 4) AS INT) % 24 AS VARCHAR), 2)
+ ':' + STUFF(CAST(RIGHT(CAST(sh.run_duration AS VARCHAR), 4) AS VARCHAR(6)), 3, 0, ':')
ELSE STUFF(STUFF(RIGHT(REPLICATE('0', 6) + CAST(sh.run_duration AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':')
END AS [LastRunDuration (d.HH:MM:SS)],
DATEADD(SECOND, shp.LastRunDurationSeconds, shp.LastRunStartDateTime) AS LastRunFinishDateTime
FROM msdb.dbo.sysjobs sj
INNER JOIN msdb.dbo.sysjobhistory sh ON sj.job_id = sh.job_id
CROSS APPLY (SELECT DATETIMEFROMPARTS(sh.run_date / 10000, -- years
sh.run_date % 10000 / 100, -- months
sh.run_date % 100, -- days
sh.run_time / 10000, -- hours
sh.run_time % 10000 / 100, -- minutes
sh.run_time % 100, -- seconds
0 -- milliseconds
) AS LastRunStartDateTime,
(sh.run_duration / 10000) * 3600 -- convert hours to seconds, can be greater than 24
+ ((sh.run_duration % 10000) / 100) * 60 -- convert minutes to seconds
+ (sh.run_duration % 100) AS LastRunDurationSeconds
) AS shp;
GO