sp_delete_schedule (Transact-SQL)
Si applica a: SQL Server
Elimina una pianificazione.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_delete_schedule
[ [ @schedule_id = ] schedule_id ]
[ , [ @schedule_name = ] N'schedule_name' ]
[ , [ @force_delete = ] force_delete ]
[ , [ @automatic_post = ] automatic_post ]
[ ; ]
Argomenti
[ @schedule_id = ] schedule_id
Numero di identificazione della pianificazione che si desidera eliminare. @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 che si desidera eliminare. @schedule_name è sysname, con un valore predefinito .NULL
È necessario specificare @schedule_id o @schedule_name , ma non è possibile specificare entrambi.
[ @force_delete = ] force_delete
Specifica se la stored procedure avrà esito negativo se la pianificazione è associata a un processo. @force_delete è bit, con il valore predefinito 0
.
- Quando @force_delete è
0
, la stored procedure ha esito negativo se la pianificazione è collegata a un processo. - Quando @force_delete è
1
, la pianificazione viene eliminata indipendentemente dal fatto che la pianificazione sia collegata a un processo.
[ @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.
Osservazioni:
Per impostazione predefinita, non è possibile eliminare una pianificazione se la pianificazione è collegata a un processo. Per eliminare una pianificazione associata a un processo, specificare il valore per 1
@force_delete. L'eliminazione di una pianificazione non arresta i processi attualmente in esecuzione.
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
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, non è possibile eliminare una pianificazione 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.
Solo i membri del ruolo sysadmin possono eliminare una pianificazione del processo di proprietà di un altro utente.
Esempi
R. Eliminare una pianificazione
Nell'esempio seguente viene eliminata la pianificazione NightlyJobs
. Se la pianificazione è collegata a qualsiasi processo, l'esempio non elimina la pianificazione.
USE msdb;
GO
EXEC dbo.sp_delete_schedule
@schedule_name = N'NightlyJobs';
GO
B. Eliminare una pianificazione collegata a un processo
Nell'esempio seguente viene eliminata la pianificazione RunOnce
anche se è associata a un processo.
USE msdb;
GO
EXEC dbo.sp_delete_schedule
@schedule_name = 'RunOnce',
@force_delete = 1;
GO