Condividi tramite


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 , 0che 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 , 0che 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 , 0che 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 , 0che 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_jobArgomenti. @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