sp_help_job (Transact-SQL)

Si applica a: SQL Server

Restituisce informazioni sui processi usati da SQL Server Agent per eseguire attività automatizzate in SQL Server.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_help_job
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @job_aspect = ] 'job_aspect' ]
    [ , [ @job_type = ] 'job_type' ]
    [ , [ @owner_login_name = ] N'owner_login_name' ]
    [ , [ @subsystem = ] N'subsystem' ]
    [ , [ @category_name = ] N'category_name' ]
    [ , [ @enabled = ] enabled ]
    [ , [ @execution_status = ] execution_status ]
    [ , [ @date_comparator = ] 'date_comparator' ]
    [ , [ @date_created = ] date_created ]
    [ , [ @date_last_modified = ] date_last_modified ]
    [ , [ @description = ] N'description' ]
[ ; ]

Argomenti

[ @job_id = ] 'job_id'

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

Per visualizzare un processo specifico, è necessario specificare @job_id o @job_name . Omettere sia @job_id che @job_name per restituire informazioni su tutti i processi.

[ @job_name = ] N'job_name'

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

Per visualizzare un processo specifico, è necessario specificare @job_id o @job_name . Omettere sia @job_id che @job_name per restituire informazioni su tutti i processi.

[ @job_aspect = ] 'job_aspect'

Attributo del processo da visualizzare. @job_aspect è varchar(9) e può essere uno di questi valori.

Valore Descrizione
ALL Informazioni sugli attributi del processo
JOB Informazioni posizione lavorativa
SCHEDULES Informazioni sulla pianificazione
STEPS Informazioni sui passaggi del processo
TARGETS Informazioni sul server di destinazione

[ @job_type = ] 'job_type'

Tipo di processi da includere nel report.@job_type è varchar(12), con il valore predefinito NULL. @job_type può essere LOCAL o MULTI-SERVER.

[ @owner_login_name = ] N'owner_login_name'

Nome dell'account di accesso proprietario del processo. @owner_login_name è sysname, con il valore predefinito NULL.

[ @subsystem = ] N'subsystem'

Nome del sottosistema. @subsystem è nvarchar(40), con il valore predefinito NULL.

[ @category_name = ] N'category_name'

Nome della categoria. @category_name è sysname, con un valore predefinito .NULL

[ @enabled = ] abilitato

Valore che indica se visualizzare informazioni per i processi abilitati o per quelli disabilitati. @enabled è tinyint, con un valore predefinito .NULL

  • 1 indica i processi abilitati.
  • 0 indica i processi disabilitati.

[ @execution_status = ] execution_status

Stato di esecuzione dei processi. @execution_status è int e può essere uno di questi valori.

Valore Descrizione
0 Restituisce solo i processi che non sono inattive o sospesi.
1 In esecuzione.
2 In attesa di un thread.
3 Tra due tentativi.
4 Operazione inattiva.
5 Sospeso.
7 Esecuzione delle azioni finali in corso.

[ @date_comparator = ] 'date_comparator'

Operatore di confronto da usare nei confronti di @date_created e @date_last_modified. @date_comparator è char(1) e può essere =, <o >.

[ @date_created = ] date_created

Data di creazione del processo. @date_created è datetime, con un valore predefinito .NULL

[ @date_last_modified = ] date_last_modified

Data dell'ultima modifica del processo. @date_last_modified è datetime, con il valore predefinito NULL.

[ @description = ] N'description'

Descrizione del processo. @description è nvarchar(512), con il valore predefinito NULL. @description può includere i caratteri jolly per la corrispondenza dei criteri.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Se non vengono specificati argomenti, sp_help_job restituisce questo set di risultati.

Nome colonna Tipo di dati Descrizione
job_id uniqueidentifier ID univoco del processo.
originating_server nvarchar(30) Nome del server di provenienza del processo.
name sysname Nome del processo.
enabled tinyint Indica se il processo è abilitato, in modo che possa essere eseguito.
description nvarchar(512) Descrizione del processo.
start_step_id int ID del passaggio del processo da cui deve iniziare l'esecuzione.
category sysname Categoria del processo.
owner sysname Proprietario del processo.
notify_level_eventlog int Maschera di bit che indica le circostanze in cui un evento di notifica deve essere registrato nel registro applicazioni di Microsoft Windows. I possibili valori sono i seguenti:

0 = Mai
1 = Quando un processo ha esito positivo
2 = Quando il processo ha esito negativo
3 = Ogni volta che il processo viene completato (indipendentemente dal risultato del processo)
notify_level_email int Maschera di bit che indica le circostanze in cui deve essere inviato un messaggio di posta elettronica di notifica al termine di un processo. I valori possibili sono uguali a per notify_level_eventlog.
notify_level_netsend int Maschera di bit che indica le circostanze in cui deve essere inviato un messaggio di rete al termine di un processo. I valori possibili sono uguali a per notify_level_eventlog.
notify_level_page int Maschera di bit che indica le circostanze in cui deve essere inviata una pagina al termine di un processo. I valori possibili sono uguali a per notify_level_eventlog.
notify_email_operator sysname Nome di posta elettronica dell'operatore a cui inviare la notifica.
notify_netsend_operator sysname Nome di computer o di utente specificato quando si invia un messaggio in rete.
notify_page_operator sysname Nome di computer o di utente specificato quando si invia un messaggio su cercapersone.
delete_level int Maschera di bit che indica le circostanze in cui il processo deve essere eliminato al termine di un processo. I valori possibili sono uguali a per notify_level_eventlog.
date_created datetime Data di creazione del processo.
date_modified datetime Data dell'ultima modifica del processo.
version_number int Versione del processo aggiornata automaticamente in corrispondenza di ogni modifica del processo.
last_run_date int Data dell'ultimo avvio dell'esecuzione del processo.
last_run_time int Ora dell'ultimo avvio dell'esecuzione del processo.
last_run_outcome int Risultato dell'ultima esecuzione del processo:

0 = Non riuscito
1 = Riuscito
3 = Annullato
5 = Sconosciuto
next_run_date int Data pianificata per la successiva esecuzione del processo.
next_run_time int Ora pianificata per la successiva esecuzione del processo.
next_run_schedule_id int ID della successiva pianificazione di esecuzione.
current_execution_status int Stato di esecuzione corrente:

1 = Esecuzione
2 = In attesa di thread
3 = Tra tentativi
4 = Inattiva
5 = Sospeso
6 = Obsoleto
7 = PerformingCompletionActions
current_execution_step sysname Passaggio di esecuzione corrente all'interno del processo.
current_retry_attempt int Se il processo è in esecuzione e il passaggio è stato ritentato, questo è il tentativo di ripetizione corrente.
has_step int Numero di passaggi del processo.
has_schedule int Numero di pianificazioni del processo.
has_target int Numero di server di destinazione del processo.
type int Tipo del processo.

1 = Processo locale.
2 = Processo multiserver.
0 = Il processo non dispone di server di destinazione.

Se si specifica @job_id o @job_name , sp_help_job restituisce questi set di risultati aggiuntivi per i passaggi del processo, le pianificazioni dei processi e i server di destinazione del processo.

Il set di risultati per i passaggi del processo è il seguente.

Nome colonna Tipo di dati Descrizione
step_id int Identificatore univoco (all'interno del processo) del passaggio.
step_name sysname Nome del passaggio.
subsystem nvarchar(40) Sottosistema in cui eseguire il comando del passaggio.
command nvarchar(3200) Comando da eseguire.
flags nvarchar(4000) Maschera di bit dei valori che controllano il funzionamento del passaggio.
cmdexec_success_code int Per un passaggio CmdExec , si tratta del codice di uscita del processo di un comando riuscito.
on_success_action nvarchar(4000) Azione da eseguire se il passaggio viene eseguito correttamente:

1 = Uscire con esito positivo.
2 = Uscire con un errore.
3 = Andare al passaggio successivo.
4 = Vai al passaggio.
on_success_step_id int Se on_success_action è 4, indica il passaggio successivo da eseguire.
on_fail_action nvarchar(4000) Azione da eseguire se il passaggio non viene eseguito correttamente. I valori sono uguali a per on_success_action.
on_fail_step_id int Se on_fail_action è 4, indica il passaggio successivo da eseguire.
server sysname Riservato.
database_name sysname Per un passaggio Transact-SQL, si tratta del database in cui viene eseguito il comando.
database_user_name sysname Per un passaggio Transact-SQL, si tratta del contesto utente del database in cui viene eseguito il comando.
retry_attempts int Numero massimo di tentativi di ripetizione del comando (se non riuscito) prima che il passaggio non sia riuscito.
retry_interval int Intervallo di tempo in minuti che intercorre tra un tentativo e il successivo.
os_run_priority varchar(4000) Riservato.
output_file_name varchar(200) File in cui scrivere l'output del comando (solo passaggi Transact-SQL e CmdExec ).
last_run_outcome int Risultato dell'ultima esecuzione del passaggio:

0 = Non riuscito
1 = Riuscito
3 = Annullato
5 = Sconosciuto
last_run_duration int Durata in secondi dell'ultima esecuzione del passaggio.
last_run_retries int Numero di tentativi di esecuzione del comando durante l'ultima esecuzione del passaggio.
last_run_date int Data di inizio dell'ultima esecuzione del passaggio.
last_run_time int Ora di inizio dell'ultima esecuzione del passaggio.
proxy_id int Proxy per il passaggio del processo.

Il set di risultati per le pianificazioni del processo è il seguente.

Nome colonna Tipo di dati Descrizione
schedule_id int ID della pianificazione, univoco per tutti i processi.
schedule_name sysname Nome della pianificazione, univoco soltanto per il processo specificato.
enabled int Indica se la pianificazione è attiva (1) o meno (0).
freq_type int Valore che indica la frequenza di esecuzione del processo:

1 = Una volta
4 = Giornaliero
8 = Settimanale
16 = Mensile
32 = Mensile, relativo all'oggetto freq_interval
64 = Eseguire all'avvio del servizio SQL Server Agent.
freq_interval int Giorni in cui viene eseguito il processo. Il valore dipende dal valore di freq_type. Per altre informazioni, vedere sp_add_schedule
freq_subday_type int Unità per freq_subday_interval. Per altre informazioni, vedere sp_add_schedule
freq_subday_interval int Numero di freq_subday_type periodi che devono verificarsi tra ogni esecuzione del processo. Per altre informazioni, vedere sp_add_schedule
freq_relative_interval int Occorrenza del processo pianificato di freq_interval in ogni mese. Per altre informazioni, vedere sp_add_schedule
freq_recurrence_factor int Numero di mesi tra l'esecuzione pianificata del processo.
active_start_date int Data di inizio dell'esecuzione del processo.
active_end_date int Data di fine dell'esecuzione del processo.
active_start_time int Ora di inizio dell'esecuzione del processo in active_start_date.
active_end_time int Tempo per terminare l'esecuzione del processo in active_end_date.
date_created datetime Data di creazione della pianificazione.
schedule_description nvarchar(4000) Descrizione in inglese della pianificazione, se richiesta.
next_run_date int Data in cui la pianificazione successiva determina l'esecuzione del processo.
next_run_time int Ora in cui la pianificazione successiva determina l'esecuzione del processo.
schedule_uid uniqueidentifier Identificatore della pianificazione.
job_count int Restituisce il numero di processi che fanno riferimento a questa pianificazione.

Il set di risultati per i server di destinazione del processo è il seguente.

Nome colonna Tipo di dati Descrizione
server_id int ID del server di destinazione.
server_name nvarchar(30) Nome di computer del server di destinazione.
enlist_date datetime Data di integrazione del server di destinazione nel server master.
last_poll_date datetime Data dell'ultimo polling del server master eseguito dal server di destinazione.
last_run_date int Data di inizio dell'ultima esecuzione del processo nel server di destinazione.
last_run_time int Ora di inizio dell'ultima esecuzione del processo nel server di destinazione.
last_run_duration int Durata dell'ultima esecuzione del processo nel server di destinazione.
last_run_outcome tinyint Risultato dell'ultima esecuzione del processo nel server specificato:

0 = Non riuscito
1 = Riuscito
3 = Annullato
5 = Sconosciuto
last_outcome_message nvarchar(1024) Messaggio visualizzato dopo l'ultima esecuzione del processo nel server di destinazione.

Autorizzazioni

Questa stored procedure è di proprietà del ruolo db_owner . È possibile concedere EXECUTE autorizzazioni per qualsiasi utente, ma queste autorizzazioni possono 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 di SQLAgentUserRole possono visualizzare solo i processi di cui sono proprietari. I membri di sysadmin, SQLAgentReaderRole e SQLAgentOperatorRole possono visualizzare tutti i processi locali e multiserver.

Esempi

R. Visualizzazione di un elenco di informazioni per tutti i processi

Nell'esempio seguente la stored procedure sp_help_job viene eseguita senza parametri in modo da ottenere informazioni su tutti i processi definiti nel database msdb.

USE msdb;
GO

EXEC dbo.sp_help_job;
GO

B. Elencare le informazioni per i processi che corrispondono a criteri specifici

Nell'esempio seguente viene visualizzato un elenco di informazioni per i processi multiserver di cui è proprietario françoisa dove il processo è attivato e in fase di esecuzione.

USE msdb;
GO

EXEC dbo.sp_help_job
   @job_type = N'MULTI-SERVER',
   @owner_login_name = N'françoisa',
   @enabled = 1,
   @execution_status = 1;
GO

C. Elencare tutti gli aspetti delle informazioni per un processo

Nell'esempio seguente viene visualizzato un elenco di tutti gli aspetti correlati alle informazioni per il processo NightlyBackups.

USE msdb;
GO

EXEC dbo.sp_help_job
    @job_name = N'NightlyBackups',
    @job_aspect = N'ALL';
GO