sp_add_job (Transact-SQL)
Si applica a: SQL Server Istanza gestita di SQL di Azure
Crea un nuovo processo eseguito dal servizio SQL Server Agent.
Convenzioni relative alla sintassi Transact-SQL
Importante
In Istanza gestita di SQL di Azure sono attualmente supportate la maggior parte delle funzionalità di SQL Server Agent, ma non tutte. Per informazioni dettagliate, vedere Differenze T-SQL tra Istanza gestita di SQL di Azure e SQL Server.
Sintassi
sp_add_job
[ @job_name = ] N'job_name'
[ , [ @enabled = ] enabled ]
[ , [ @description = ] N'description' ]
[ , [ @start_step_id = ] step_id ]
[ , [ @category_name = ] 'category' ]
[ , [ @category_id = ] category_id ]
[ , [ @owner_login_name = ] 'login' ]
[ , [ @notify_level_eventlog = ] eventlog_level ]
[ , [ @notify_level_email = ] email_level ]
[ , [ @notify_level_netsend = ] netsend_level ]
[ , [ @notify_level_page = ] page_level ]
[ , [ @notify_email_operator_name = ] 'email_name' ]
[ , [ @notify_netsend_operator_name = ] 'netsend_name' ]
[ , [ @notify_page_operator_name = ] 'page_name' ]
[ , [ @delete_level = ] delete_level ]
[ , [ @job_id = ] job_id OUTPUT ]
[ ; ]
Argomenti
@job_name
Il nome del processo. Il nome deve essere univoco e non può contenere il carattere percentuale (%
). @job_name è nvarchar(128), senza impostazione predefinita. Obbligatorio.
@enabled
Indica lo stato del processo aggiunto. enabled è tinyint, con un valore predefinito ( 1
abilitato). Se 0
, il processo non è abilitato e non viene eseguito in base alla pianificazione, ma può essere eseguito manualmente.
@description
Descrizione del processo. @description è nvarchar(512), con il valore predefinito NULL
. Se @description viene omesso, N'No description available'
viene utilizzato .
@start_step_id
Numero di identificazione del primo passaggio da eseguire per il processo. @start_step_id è int, con il valore predefinito 1
.
@category_name
Categoria per il processo. @category_name è sysname, con un valore predefinito .NULL
@category_id
Meccanismo indipendente dal linguaggio per specificare una categoria di processi. @category_id è int, con il valore predefinito NULL
.
@owner_login_name
Nome dell'account di accesso proprietario del processo. @owner_login_name è sysname, con un valore predefinito NULL
, che viene interpretato come nome di accesso corrente. Solo i membri del ruolo predefinito del server sysadmin possono impostare o modificare il valore per @owner_login_name. Se gli utenti che non sono membri del set di ruoli sysadmin o modificano il valore di @owner_login_name, l'esecuzione di questa stored procedure ha esito negativo e viene restituito un errore.
@notify_level_eventlog
Valore che indica quando inserire una voce per il processo nel registro applicazioni di Microsoft Windows. @notify_level_eventlog è int e può essere uno di questi valori:
valore | Descrizione |
---|---|
0 |
Mai |
1 |
In caso di esito positivo |
2 (predefinito) |
In caso di esito negativo |
3 |
Sempre |
@notify_level_email
Valore che indica quando inviare un messaggio di posta elettronica al termine del processo. @notify_level_email è int, con un valore predefinito , 0
che indica mai. @notify_level_email usa gli stessi valori di @notify_level_eventlog.
@notify_level_netsend
Valore che indica quando inviare un messaggio di rete al termine del processo. @notify_level_netsend è int, con un valore predefinito , 0
che indica mai. @notify_level_netsend usa gli stessi valori di @notify_level_eventlog.
@notify_level_page
Valore che indica quando inviare una pagina al termine del processo. @notify_level_page è int, con un valore predefinito , 0
che indica mai. @notify_level_page usa gli stessi valori di @notify_level_eventlog.
@notify_email_operator_name
Nome di posta elettronica della persona a cui inviare messaggi di posta elettronica quando viene raggiunto @notify_email_operator_name . @notify_email_operator_name è sysname, con un valore predefinito .NULL
@notify_netsend_operator_name
Nome dell'operatore a cui viene inviato il messaggio di rete al termine del processo. @notify_netsend_operator_name è sysname, con un valore predefinito .NULL
@notify_page_operator_name
Nome dell'operatore a cui inviare il messaggio sul cercapersone al termine del processo. @notify_page_operator_name è sysname, con un valore predefinito .NULL
@delete_level
Valore che indica quando eliminare il processo. delete_value è int, con un valore predefinito , 0
che significa mai. @delete_level usa gli stessi valori di @notify_level_eventlog.
Nota
Quando @delete_level è 3
, il processo viene eseguito una sola volta, indipendentemente dalle pianificazioni definite per il processo. Inoltre, se un processo si autoelimina, viene eliminato anche il contenuto della cronologia corrispondente.
@job_id PRODOTTO
Numero di identificazione del processo assegnato al processo se creato correttamente. @job_id è una variabile di output di tipo uniqueidentifier, con un valore predefinito .NULL
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Set di risultati
Nessuno.
Osservazioni:
@originating_server esiste in , ma non è elencato in sp_add_job
Argomenti. @originating_server è riservato per uso interno.
Dopo sp_add_job
l'esecuzione per aggiungere un processo, sp_add_jobstep
è possibile usare per aggiungere passaggi che eseguono le attività per il processo. sp_add_jobschedule
può essere usato per creare la pianificazione usata dal servizio SQL Server Agent per eseguire il processo.
Usare sp_add_jobserver
per impostare l'istanza di SQL Server in cui viene eseguito il processo e sp_delete_jobserver
rimuovere il processo dall'istanza di SQL Server. Se il processo viene eseguito in uno o più server di destinazione in un ambiente multiserver, usare sp_apply_job_to_targets
per impostare i server di destinazione o i gruppi di server di destinazione per il processo. Per rimuovere i processi dai server di destinazione o dai gruppi di server di destinazione, usare sp_remove_job_from_targets
. La funzionalità Amministrazione multiserver (MSX/TSX) non è supportata in Istanza gestita di SQL di Azure.
SQL Server Management Studio include un semplice strumento grafico per la gestione dei processi ed è lo strumento consigliato per la creazione e gestione dell'infrastruttura dei processi.
Questa stored procedure condivide il nome di con un oggetto simile per il servizio Processi elastici di sp_add_job
Azure per database SQL di Azure. Per informazioni sulla versione dei processi elastici, vedere jobs.sp_add_job (processi elastici di Azure).
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.
Solo i membri del ruolo predefinito del server sysadmin possono impostare o modificare il valore per @owner_login_name. Se gli utenti che non sono membri del set di ruoli sysadmin o modificano il valore di @owner_login_name, l'esecuzione di questa stored procedure ha esito negativo e viene restituito un errore.
Esempi
R. Aggiungere un processo
In questo esempio viene aggiunto il nuovo processo denominato NightlyBackups
.
USE msdb;
GO
EXEC dbo.sp_add_job @job_name = N'NightlyBackups';
GO
B. Aggiungere un processo con cercapersone, posta elettronica e net send information
In questo esempio viene creato il processo Ad hoc Sales Data Backup
che in caso di esito negativo invia una notifica all'operatore François Ajenstat
(tramite cercapersone, posta elettronica o messaggio popup di rete), mentre in caso di esito positivo si autoelimina.
Nota
In questo esempio si presuppone che l'operatore François Ajenstat
e l'account di accesso françoisa
esistano già.
USE msdb;
GO
EXEC dbo.sp_add_job
@job_name = N'Ad hoc Sales Data Backup',
@enabled = 1,
@description = N'Ad hoc backup of sales data',
@owner_login_name = N'françoisa',
@notify_level_eventlog = 2,
@notify_level_email = 2,
@notify_level_netsend = 2,
@notify_level_page = 2,
@notify_email_operator_name = N'François Ajenstat',
@notify_netsend_operator_name = N'François Ajenstat',
@notify_page_operator_name = N'François Ajenstat',
@delete_level = 1;
GO
Contenuto correlato
- sp_add_schedule (Transact-SQL)
- sp_add_jobstep (Transact-SQL)
- sp_add_jobserver (Transact-SQL)
- sp_apply_job_to_targets (Transact-SQL)
- sp_delete_job (Transact-SQL)
- sp_delete_jobserver (Transact-SQL)
- sp_remove_job_from_targets (Transact-SQL)
- sp_help_job (Transact-SQL)
- sp_help_jobstep (Transact-SQL)
- sp_update_job (Transact-SQL)