Condividi tramite


sp_detach_schedule (Transact-SQL)

Si applica a: SQL Server

Rimuove un'associazione tra una pianificazione e un processo.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_detach_schedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @schedule_id = ] schedule_id ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @delete_unused_schedule = ] delete_unused_schedule ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Argomenti

[ @job_id = ] 'job_id'

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

È necessario specificare @job_id o @job_name , ma non è possibile specificare entrambi.

[ @job_name = ] N'job_name'

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

È necessario specificare @job_id o @job_name , ma non è possibile specificare entrambi.

[ @schedule_id = ] schedule_id

Numero di identificazione della pianificazione da eliminare per il processo. @schedule_id è int, con il valore predefinito NULL.

È necessario specificare @schedule_id o @schedule_name , ma non è possibile specificare entrambi.

[ @schedule_name = ] N'schedule_name'

Nome della pianificazione da eliminare dal processo. @schedule_name è sysname, con un valore predefinito .NULL

È necessario specificare @schedule_id o @schedule_name , ma non è possibile specificare entrambi.

[ @delete_unused_schedule = ] delete_unused_schedule

Specifica se eliminare le pianificazioni dei processi non utilizzate. @delete_unused_schedule è bit, con un valore predefinito , 0il che significa che tutte le pianificazioni vengono mantenute, anche se nessun processo vi fa riferimento. Se impostato su 1, le pianificazioni dei processi inutilizzate vengono eliminate se non vi fanno riferimento processi.

[ @automatic_post = ] automatic_post

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

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Nessuno.

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

Il proprietario del processo può collegare un processo a una pianificazione e scollegare un processo da una pianificazione senza dover essere anche il proprietario della pianificazione. Tuttavia, una pianificazione non può essere eliminata se lo scollegamento lascia senza processi, a meno che il chiamante non sia il proprietario della pianificazione.

Per informazioni dettagliate sulle autorizzazioni di questi ruoli, vedere Ruoli di database predefiniti di SQL Server Agent.

SQL Server verifica se l'utente è proprietario della pianificazione. Solo i membri del ruolo predefinito del server sysadmin possono scollegare le pianificazioni dai processi di proprietà di un altro utente.

Esempi

Nell'esempio seguente viene rimossa un'associazione tra una pianificazione NightlyJobs e un processo BackupDatabase.

USE msdb;
GO

EXEC dbo.sp_detach_schedule
    @job_name = 'BackupDatabase',
    @schedule_name = 'NightlyJobs';
GO