sp_help_job (Transact-SQL)
Restituisce informazioni sui processi utilizzati da SQL Server Agent per l'esecuzione di attività automatizzate in SQL Server.
Convenzioni della sintassi Transact-SQL
Sintassi
sp_help_job { [ @job_id = ] job_id
[ @job_name = ] 'job_name' }
[ , [ @job_aspect = ] 'job_aspect' ]
[ , [ @job_type = ] 'job_type' ]
[ , [ @owner_login_name = ] 'login_name' ]
[ , [ @subsystem = ] 'subsystem' ]
[ , [ @category_name = ] 'category' ]
[ , [ @enabled = ] enabled ]
[ , [ @execution_status = ] status ]
[ , [ @date_comparator = ] 'date_comparison' ]
[ , [ @date_created = ] date_created ]
[ , [ @date_last_modified = ] date_modified ]
[ , [ @description = ] 'description_pattern' ]
Argomenti
[ @job_id =] job_id
Numero di identificazione del processo. job_id è di tipo uniqueidentifier e il valore predefinito è NULL.[ @job_name =] 'job_name'
Nome del processo. job_name è di tipo sysname e il valore predefinito è NULL.[!NOTA]
È necessario specificare l'argomento job_id oppure l'argomento job_name ma non è possibile specificarli entrambi.
[ @job_aspect =] 'job_aspect'
Attributo del processo da visualizzare. job_aspect è di tipo varchar(9) e il valore predefinito è NULL. I valori possibili sono i seguenti.Valore
Descrizione
ALL
Informazioni sugli attributi del processo
JOB
Informazioni sul processo
SCHEDULES
Informazioni sulla pianificazione
STEPS
Informazioni sui passaggi del processo
TARGETS
Informazioni sul server di destinazione
[ @job_type =] 'job_type'
Tipo di processo da includere nel report. job_type è di tipo varchar(12) e il valore predefinito è NULL. job_type può essere LOCAL o MULTI-SERVER.[ @owner_login_name =] 'login_name'
Nome dell'account di accesso proprietario del processo. login_name è di tipo sysname e il valore predefinito è NULL.[ @subsystem =] 'subsystem'
Nome del sottosistema. subsystem è di tipo nvarchar(40) e il valore predefinito è NULL.[ @category_name =] 'category'
Nome della categoria. category è di tipo sysname e il valore predefinito è NULL.[ @enabled =] enabled
Valore che indica se visualizzare informazioni per i processi abilitati o per quelli disabilitati. enabled è di tipo tinyint e il valore predefinito è NULL. 1 indica la visualizzazione dei processi attivati, 0 la visualizzazione di quelli disabilitati.[ @execution_status =] status
Stato di esecuzione dei processi. status è di tipo int e il valore predefinito è NULL. I valori possibili sono i seguenti.Valore
Descrizione
0
Restituisce solo i processi non inattivi o sospesi.
1
In esecuzione.
2
In attesa di un thread.
3
Tra due tentativi.
4
Inattivo.
5
Sospeso.
7
Esecuzione delle azioni finali in corso.
[ @date_comparator =] 'date_comparison'
Operatore di confronto da utilizzare nei confronti tra date_created e date_modified. date_comparison è di tipo char(1) e può essere =, < o >.[ @date_created =] date_created
Data di creazione del processo. date_created è di tipo datetime e il valore predefinito è NULL.[ @date_last_modified =] date_modified
Data dell'ultima modifica del processo. date_modified è di tipo datetime e il valore predefinito è NULL.[ @description =] 'description_pattern'
Descrizione del processo. description_pattern è di tipo nvarchar(512) e il valore predefinito è NULL. description_pattern può includere i caratteri jolly di SQL Server per i criteri di ricerca.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Set di risultati
Se non è specificato alcun argomento, sp_help_job restituisce il set di risultati seguente.
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 per l'esecuzione. |
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 condizioni per la registrazione dell'evento di notifica nel registro applicazioni di Microsoft Windows. I possibili valori sono i seguenti: 0 = Mai 1 = In caso di esito positivo del processo 2 = In caso di esito negativo del processo 3 = Al termine del processo (indipendentemente dal risultato) |
notify_level_email |
int |
Maschera di bit che indica le condizioni per l'invio di un messaggio di posta elettronica di notifica al termine di un processo. I valori possibili sono gli stessi validi per notify_level_eventlog. |
notify_level_netsend |
int |
Maschera di bit che indica le condizioni per l'invio di un messaggio di rete al termine di un processo. I valori possibili sono gli stessi validi per notify_level_eventlog. |
notify_level_page |
int |
Maschera di bit che indica le condizioni per l'invio di un messaggio su cercapersone al termine di un processo. I valori possibili sono gli stessi validi 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 condizioni per l'eliminazione di un processo al termine del processo. I valori possibili sono gli stessi validi 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 completata 1 = Completato 3 = Annullato 5 = Stato 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. |
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 ripetuto, indica il numero del tentativo in corso. |
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. |
tipo |
int |
Tipo del processo. 1 = Processo locale. 2 = Processo multiserver. 0 = Processo privo di server di destinazione. |
Se viene specificato job_id o job_name, sp_help_job restituisce i set di risultati aggiuntivi riportati di seguito per i passaggi, le pianificazioni 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, codice di uscita del processo di un comando eseguito correttamente. |
on_success_action |
nvarchar(4000) |
Azione da eseguire se il passaggio viene eseguito correttamente: 1 = Uscita in caso di esito positivo. 2 = Uscita in caso di esito negativo. 3 = Esecuzione del passaggio successivo. 4 = Esecuzione di un passaggio. |
on_success_step_id |
int |
Se on_success_action è 4, indica il passaggio da eseguire. |
on_fail_action |
nvarchar(4000) |
Azione da eseguire se il passaggio non viene eseguito correttamente. I possibili valori corrispondono a quelli di on_success_action. |
on_fail_step_id |
int |
Se on_fail_action è 4, indica il passaggio da eseguire. |
server |
sysname |
Riservato. |
database_name |
sysname |
Per un passaggio Transact-SQL, indica il database in cui verrà eseguito il comando. |
database_user_name |
sysname |
Per un passaggio Transact-SQL, indica il contesto utente del database in cui viene eseguito il comando. |
retry_attempts |
int |
Numero massimo di tentativi di esecuzione del comando (nel caso in cui non sia stato eseguito correttamente) oltre il quale il passaggio viene considerato errato. |
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 per i passaggi Transact-SQL e CmdExec). |
last_run_outcome |
int |
Risultato dell'ultima esecuzione del passaggio: 0 = Non completata 1 = Completato 3 = Annullato 5 = Stato 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. |
abilitato |
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 = Giornaliera 8 = Settimanale 16 = Mensile 32 = Mensile basata su freq_interval 64 = All'avvio del servizio SQLServerAgent |
freq_interval |
int |
Giorni in cui viene eseguito il processo. Il valore dipende da quello di freq_type. Per ulteriori informazioni, vedere sp_add_schedule (Transact-SQL). |
freq_subday_type |
Int |
Unità per freq_subday_interval. Per ulteriori informazioni, vedere sp_add_schedule (Transact-SQL). |
freq_subday_interval |
int |
Numero di periodi freq_subday_type che devono intercorrere tra un'esecuzione del processo e la successiva. Per ulteriori informazioni, vedere sp_add_schedule (Transact-SQL). |
freq_relative_interval |
int |
Occorrenza di freq_interval al mese per il processo pianificato. Per ulteriori informazioni, vedere sp_add_schedule (Transact-SQL). |
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 nella data specificata in active_start_date. |
active_end_time |
int |
Ora di fine dell'esecuzione del processo nella data specificata 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 della successiva esecuzione del processo in base alla pianificazione. |
next_run_time |
int |
Ora della successiva esecuzione del processo in base alla pianificazione. |
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 completato 1 = Completato 3 = Annullato 5 = Stato sconosciuto |
last_outcome_message |
nvarchar(1024) |
Messaggio visualizzato dopo l'ultima esecuzione del processo nel server di destinazione. |
Autorizzazioni
Per impostazione predefinita, questa stored procedure può essere eseguita dai membri del ruolo predefinito del server sysadmin. Gli altri utenti devono appartenere a uno dei seguenti ruoli predefiniti del database di SQL Server Agent nel database msdb:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
Per informazioni 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
A.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.Visualizzazione di un elenco di informazioni per i processi che corrispondono a un criterio specifico
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.Visualizzazione di un elenco di tutte le 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