Share via


sp_add_job (Transact-SQL)

Aggiunge un nuovo processo eseguito dal servizio SQLServerAgent.

Sintassi

sp_add_job [ @job_name = ] 'job_name'
     [ , [ @enabled = ] enabled ] 
     [ , [ @description = ] '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 = ] 'job_name'
    Nome del processo. Il nome deve essere univoco e non può includere il carattere %. job_name è di tipo nvarchar(128) e non prevede alcun valore predefinito.
  • [ @enabled = ] enabled
    Indica lo stato del processo aggiunto. enabledè di tipo tinyint e il valore predefinito è 1 (attivato). Se è uguale a 0, il processo non è attivato e non viene eseguito in base alla pianificazione. È tuttavia possibile eseguirlo in modo manuale.
  • [ @description = ] 'description'
    Descrizione del processo. description è di tipo nvarchar(512) e il valore predefinito è NULL. Se description viene omesso, viene utilizzata la stringa "Nessuna descrizione disponibile".
  • [ @start_step_id = ] step_id
    Numero di identificazione del primo passaggio da eseguire per il processo. step_idè di tipo int e il valore predefinito è 1.
  • [ @category_name = ] 'category'
    Categoria del processo. categoryè di tipo sysname e il valore predefinito è NULL.
  • [ @category_id = ] category_id
    Meccanismo indipendente dal linguaggio per specificare una categoria di processi. category_idè di tipo int e il valore predefinito è NULL.
  • [ @owner_login_name = ] 'login'
    Nome dell'account di accesso proprietario del processo. loginè di tipo sysname e il valore predefinito è NULL, che viene interpretato come il nome dell'account di accesso corrente. Solo i membri del ruolo predefinito del server sysadmin possono impostare o modificare il valore di @owner_login_name. Se il valore di @owner_login_name viene impostato o modificato da utenti non membri del ruolo sysadmin, l'esecuzione della stored procedure ha esito negativo e viene restituito un errore.
  • [ @notify_level_eventlog = ] eventlog_level
    Valore che indica quando inserire una voce per il processo nel registro applicazioni di Microsoft Windows. eventlog_levelè di tipo int e i possibili valori sono i seguenti.

    Valore Descrizione

    0

    Mai

    1

    In caso di esito positivo

    2 (valore predefinito)

    In caso di esito negativo

    3

    Sempre

  • [ @notify_level_email = ] email_level
    Indica quando inviare un messaggio di posta elettronica al termine del processo. email_levelè di tipo int e il valore predefinito è 0, ovvero mai. I possibili valori di email_levelcorrispondono a quelli di eventlog_level.
  • [ @notify_level_netsend = ] netsend_level
    Indica quando inviare un messaggio di rete al termine del processo. netsend_levelè di tipo int e il valore predefinito è 0, ovvero mai. I possibili valori di netsend_level corrispondono a quelli di eventlog_level.
  • [ @notify_level_page = ] page_level
    Indica quando inviare un messaggio sul cercapersone al termine del processo. page_levelè di tipo int e il valore predefinito è 0, ovvero mai. I possibili valori di page_levelcorrispondono a quelli di eventlog_level.
  • [ @notify_email_operator_name = ] 'email_name'
    Nome di posta elettronica della persona a cui inviare il messaggio quando viene raggiunto il livello specificato in email_level. email_name è di tipo sysname e il valore predefinito è NULL.
  • [ @notify_netsend_operator_name = ] 'netsend_name'
    Nome dell'operatore a cui viene inviato il messaggio di rete al termine del processo. netsend_nameè di tipo sysname e il valore predefinito è NULL.
  • [ @notify_page_operator_name = ] 'page_name'
    Nome dell'operatore a cui inviare il messaggio sul cercapersone al termine del processo. page_nameè di tipo sysname e il valore predefinito è NULL.
  • [ @delete_level = ] delete_level
    Indica quando eliminare il processo. delete_valueè di tipo int e il valore predefinito è 0, ovvero mai. I possibili valori di delete_levelcorrispondono a quelli di eventlog_level.

    [!NOTA] Quando delete_level è uguale a 3, il processo viene eseguito una sola volta, indipendentemente dalle pianificazioni definite per tale processo. Inoltre, se un processo si autoelimina, viene eliminato anche il contenuto della cronologia corrispondente.

  • [ @job_id = ] job_idOUTPUT
    Numero di identificazione assegnato al processo se viene creato correttamente. job_idè una variabile di output di tipo uniqueidentifier e il valore predefinito è NULL.

Set di risultati

Nessuno

Osservazioni

La funzione @originating_server è inclusa nella procedura sp_add_job, ma non viene elencata nella sezione Argomenti. @originating_server è riservata per uso interno.

Dopo l'esecuzione della procedura sp_add_job per aggiungere un processo, è possibile eseguire sp_add_jobstep per aggiungere passaggi per l'esecuzione di tale processo. La procedura sp_add_jobschedule consente di creare la pianificazione utilizzata dal servizio SQL Server Agent per eseguire il processo. Utilizzare sp_add_jobserver per impostare l'istanza di SQL Server in cui viene eseguito il processo e sp_delete_jobserver per rimuovere il processo dall'istanza di SQL Server.

Se il processo verrà eseguito in uno o più server di destinazione in un ambiente multiserver, utilizzare 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, utilizzare sp_remove_job_from_targets.

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.

Autorizzazioni

Per eseguire questa stored procedure, gli utenti devono essere membri del ruolo predefinito del server sysadmin, oppure disporre di uno dei ruoli del database di SQL Server Agent seguenti, che si trovano nel database msdb:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Per informazioni sulle autorizzazioni specifiche associate a ognuno di questi ruoli predefiniti del database, vedere Ruoli di database predefiniti di SQL Server Agent.

Solo i membri del ruolo predefinito del server sysadmin possono impostare o modificare il valore di @owner_login_name. Se il valore di @owner_login_name viene impostato o modificato da utenti non membri del ruolo sysadmin, l'esecuzione della stored procedure ha esito negativo e viene restituito un errore.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Esempi

A. Aggiunta di 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. Aggiunta di un processo con informazioni inviate tramite il cercapersone, la posta elettronica e la rete

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

Vedere anche

Riferimento

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)
Stored procedure di sistema (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005