Condividi tramite


sp_delete_job (Transact-SQL)

Si applica a: SQL Server Istanza gestita di SQL di Azure

Elimina un processo dal servizio SQL Server Agent.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_delete_job
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @originating_server = ] N'originating_server' ]
    [ , [ @delete_history = ] delete_history ]
    [ , [ @delete_unused_schedule = ] delete_unused_schedule ]
[ ; ]

Argomenti

[ @job_id = ] 'job_id'

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

È necessario specificare @job_id o @job_name . Non è possibile specificare entrambi.

[ @job_name = ] N'job_name'

Nome del processo da eliminare. @job_name è sysname, con il valore predefinito NULL.

È necessario specificare @job_id o @job_name . Non è possibile specificare entrambi.

[ @originating_server = ] N'originating_server'

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.

[ @delete_history = ] delete_history

Specifica se eliminare la cronologia per il processo. @delete_history è bit, con un valore predefinito .1

  • Quando @delete_history è 1, la cronologia dei processi per il processo viene eliminata.
  • Quando @delete_history è 0, la cronologia dei processi non viene eliminata.

Quando un processo viene eliminato e la cronologia non viene eliminata, le informazioni cronologiche per il processo non vengono visualizzate nella cronologia dei processi dell'interfaccia utente grafica di SQL Server Agent, ma le informazioni si trovano ancora nella sysjobhistory tabella nel msdb database.

[ @delete_unused_schedule = ] delete_unused_schedule

Specifica se eliminare le pianificazioni associate a questo processo se non sono associate ad altri processi. @delete_unused_schedule è bit, con un valore predefinito .1

  • Quando @delete_unused_schedule è 1, le pianificazioni associate a questo processo vengono eliminate se nessun altro processo fa riferimento alla pianificazione.
  • Quando @delete_unused_schedule è 0, le pianificazioni non vengono eliminate.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Nessuno.

Osservazioni:

L'argomento @originating_server è riservato per l'uso interno.

L'argomento @delete_unused_schedule offre compatibilità con le versioni precedenti di SQL Server rimuovendo automaticamente le pianificazioni non associate ad alcun processo. Questo parametro viene impostato per impostazione predefinita sul comportamento compatibile con le versioni precedenti. Per mantenere le pianificazioni non associate a un processo, è necessario specificare il valore 0 come argomento @delete_unused_schedule .

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 non può eliminare i piani di manutenzione e non può eliminare processi che fanno parte dei piani di manutenzione. Usare invece SQL Server Management Studio per eliminare i piani di manutenzione.

Questa stored procedure condivide il nome di con un oggetto simile per il servizio Processi elastici di sp_delete_job Azure per database SQL di Azure. Per informazioni sulla versione dei processi elastici, vedere jobs.sp_delete_job (processi elastici di Azure).

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 del ruolo predefinito del server sysadmin possono essere eseguiti sp_delete_job per eliminare qualsiasi processo. Un utente che non è membro del ruolo predefinito del server sysadmin può eliminare solo i processi di proprietà di tale utente.

Esempi

Nell'esempio seguente viene eliminato il processo NightlyBackups.

USE msdb;
GO

EXEC sp_delete_job
    @job_name = N'NightlyBackups';
GO