Condividi tramite


sp_help_jobhistory (Transact-SQL)

Si applica a: SQL Server

Restituisce informazioni sui processi per i server del dominio di amministrazione multiserver.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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' ]
[ ; ]

Argomenti

[ @job_id = ] 'job_id'

Numero di identificazione del processo. @job_id è uniqueidentifier, con un valore predefinito .NULL

[ @job_name = ] N'job_name'

Il nome del processo. @job_name è sysname, con il valore predefinito NULL.

[ @step_id = ] step_id

Numero di identificazione del passaggio. @step_id è int, con il valore predefinito NULL.

[ @sql_message_id = ] sql_message_id

Numero di identificazione del messaggio di errore restituito da SQL Server durante l'esecuzione del processo. @sql_message_id è int, con il valore predefinito NULL.

[ @sql_severity = ] sql_severity

Livello di gravità del messaggio di errore restituito da SQL Server durante l'esecuzione del processo. @sql_severity è int, con il valore predefinito .NULL

[ @start_run_date = ] start_run_date

Data di avvio del processo. @start_run_date è int, con il valore predefinito NULL. @start_run_date deve essere immesso nel formato yyyyMMdd, dove yyyy è un anno di quattro caratteri, MM è un nome di mese a due caratteri e dd è un nome di due caratteri.

[ @end_run_date = ] end_run_date

Data di completamento del processo. @end_run_date è int, con un valore predefinito .NULL @end_run_date deve essere immesso nel formato yyyyMMdd, dove yyyy è un anno di quattro caratteri, MM è un nome di mese a due caratteri e dd è un nome di giorno a due caratteri.

[ @start_run_time = ] start_run_time

Ora di avvio del processo. @start_run_time è int, con il valore predefinito NULL. @start_run_time deve essere immesso nel formato HHmmss, dove HH è un'ora di due caratteri del giorno, mm è un minuto di due caratteri del giorno e ss è un secondo di due caratteri del giorno.

[ @end_run_time = ] end_run_time

Ora di completamento del processo. @end_run_time è int, con il valore predefinito NULL. @end_run_time deve essere immesso nel formato HHmmss, dove HH è un'ora di due caratteri del giorno, mm è un minuto di due caratteri del giorno e ss è un secondo di due caratteri del giorno.

[ @minimum_run_duration = ] minimum_run_duration

Durata minima per il completamento del processo. @minimum_run_duration è int, con il valore predefinito .NULL @minimum_run_duration deve essere immesso nel formato HHmmss, dove HH è un'ora di due caratteri del giorno, mm è un minuto di due caratteri del giorno e ss è un secondo di due caratteri del giorno.

[ @run_status = ] run_status

Stato di esecuzione del processo.@run_status è int e può essere uno di questi valori.

valore Descrizione
0 Non inviato
1 Completato
2 Nuovo tentativo (solo passaggio)
3 Annullati
4 Messaggio di esecuzione in corso
5 Sconosciuto

[ @minimum_retries = ] minimum_retries

Numero minimo di tentativi per l'esecuzione di un processo. @minimum_retries è int, con il valore predefinito .NULL

[ @oldest_first = ] oldest_first

Indica se presentare prima l'output con i processi meno recenti. @oldest_first è int, con un valore predefinito .0

  • 0 presenta prima i processi più recenti.
  • 1 presenta prima i lavori meno recenti.

[ @server = ] N'server'

Nome del server in cui è stato eseguito il processo. @server è sysname, con un valore predefinito .NULL

[ @mode = ] 'mode'

Specifica se SQL Server stampa tutte le colonne nel set di risultati (FULL) o un riepilogo (SUMMARY) delle colonne. @mode è varchar(7), con il valore predefinito SUMMARY.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

L'elenco di colonne effettivo dipende dal valore di @mode. Il set di colonne più completo è illustrato nella tabella seguente e viene restituito quando @mode è FULL.

Nome colonna Tipo di dati Descrizione
instance_id int Numero di identificazione della voce di cronologia.
job_id uniqueidentifier Numero di identificazione del processo.
job_name sysname Nome del processo.
step_id int Numero di identificazione del passaggio (0 per una cronologia del processo).
step_name sysname Nome passaggio (NULL per una cronologia del processo).
sql_message_id int Per un passaggio Transact-SQL, il numero di errore Transact-SQL più recente rilevato durante l'esecuzione del comando.
sql_severity int Per un passaggio Transact-SQL, viene rilevata la gravità più elevata dell'errore Transact-SQL durante l'esecuzione del comando.
message nvarchar(1024) Messaggio della cronologia relativo al processo o al passaggio.
run_status int Risultato del processo o del passaggio.
run_date int Data di inizio dell'esecuzione del processo o del passaggio.
run_time int Ora di inizio dell'esecuzione del processo o del passaggio.
run_duration int Tempo trascorso nell'esecuzione del processo o del passaggio in HHmmss formato .
operator_emailed nvarchar(20) Operatore inviato tramite posta elettronica per questo processo (è NULL relativo alla cronologia dei passaggi).
operator_netsent nvarchar(20) Operatore che è stato inviato un messaggio di rete relativo a questo processo (è NULL relativo alla cronologia dei passaggi).
operator_paged nvarchar(20) Operatore di cui è stato eseguito il paging relativo a questo processo (è NULL relativo alla cronologia dei passaggi).
retries_attempted int Numero di tentativi di esecuzione del passaggio (è sempre 0 per la cronologia dei processi).
server nvarchar(30) Server in cui viene eseguito il processo o il passaggio. È sempre (local).

Osservazioni:

sp_help_jobhistory restituisce un report con la cronologia dei processi pianificati specificati. Se non viene specificato alcun parametro, il report include la cronologia di tutti i processi pianificati.

Autorizzazioni

È possibile concedere EXECUTE autorizzazioni per questa procedura, ma queste autorizzazioni potrebbero essere sottoposte a override durante un aggiornamento di SQL Server.

È necessario concedere ad altri utenti uno dei ruoli predefiniti del database di SQL Server Agent seguenti:msdb

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Per informazioni dettagliate sulle autorizzazioni di questi ruoli, vedere Ruoli di database predefiniti di SQL Server Agent.

I membri del ruolo del database SQLAgentUserRole possono visualizzare solo la cronologia per i processi di cui sono proprietari.

Esempi

R. Elencare tutte le informazioni sul processo per un processo

Nell'esempio seguente viene visualizzato un elenco di informazioni per il processo NightlyBackups

USE msdb;
GO

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

B. Elencare le informazioni per i processi che soddisfano determinate condizioni

Nell'esempio seguente vengono stampate tutte le colonne e tutte le informazioni relative ai processi e ai passaggi non eseguiti correttamente che hanno generato un messaggio di errore 50100 (messaggio di errore definito dall'utente) con livello di gravità 20.

USE msdb;
GO

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