sp_delete_schedule (Transact-SQL)
Gilt für: SQL Server
Löscht einen Zeitplan.
Transact-SQL-Syntaxkonventionen
Syntax
sp_delete_schedule
[ [ @schedule_id = ] schedule_id ]
[ , [ @schedule_name = ] N'schedule_name' ]
[ , [ @force_delete = ] force_delete ]
[ , [ @automatic_post = ] automatic_post ]
[ ; ]
Argumente
[ @schedule_id = ] schedule_id
Die Zeitplan-ID des zu löschenden Zeitplans. @schedule_id ist int mit einem Standardwert von NULL
.
Entweder @schedule_id oder @schedule_name müssen angegeben werden, beide können jedoch nicht angegeben werden.
[ @schedule_name = ] N'schedule_name'
Der Name des zu löschenden Zeitplan. @schedule_name ist "sysname" mit der Standardeinstellung "NULL
.
Entweder @schedule_id oder @schedule_name müssen angegeben werden, beide können jedoch nicht angegeben werden.
[ @force_delete = ] force_delete
Gibt an, ob die Prozedur einen Fehler verursachen soll, wenn der Zeitplan an einen Auftrag angefügt wird. @force_delete ist bit, mit einem Standardwert von 0
.
- Wenn @force_delete ist
0
, schlägt die gespeicherte Prozedur fehl, wenn der Zeitplan an einen Auftrag angefügt ist. - Wenn @force_delete ist
1
, wird der Zeitplan unabhängig davon gelöscht, ob der Zeitplan an einen Auftrag angefügt ist.
[ @automatic_post = ] automatic_post
Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Resultset
Keine.
Hinweise
Standardmäßig kann ein Zeitplan nicht gelöscht werden, wenn der Zeitplan an einen Auftrag angefügt ist. Wenn Sie einen Zeitplan löschen möchten, der einem Auftrag zugeordnet ist, geben Sie einen Wert für 1
@force_delete an. Durch das Löschen eines Zeitplans werden derzeit ausgeführte Aufträge nicht beendet.
Berechtigungen
Sie können Berechtigungen für dieses Verfahren erteilen EXECUTE
, aber diese Berechtigungen können während eines SQL Server-Upgrades außer Kraft gesetzt werden.
Anderen Benutzern muss eine der folgenden SQL Server-Agent festen Datenbankrollen in der msdb
Datenbank gewährt werden:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
Der Auftragsbesitzer kann einen Auftrag an einen Zeitplan anfügen und einen Auftrag von einem Zeitplan trennen, ohne auch der Zeitplanbesitzer zu sein. Ein Zeitplan kann jedoch nicht gelöscht werden, wenn die Trennung sie ohne Aufträge belassen würde, es sei denn, der Anrufer ist der Planbesitzer.
Weitere Informationen zu den Berechtigungen dieser Rollen finden Sie unter Feste Datenbankrollen des SQL Server-Agents.
Nur Mitglieder der Sysadmin-Rolle können einen Auftragszeitplan löschen, der einem anderen Benutzer gehört.
Beispiele
A. Löschen eines Zeitplans
Im folgenden Beispiel wird der Zeitplan NightlyJobs
gelöscht. Wenn der Zeitplan an einen Auftrag angefügt ist, löscht das Beispiel den Zeitplan nicht.
USE msdb;
GO
EXEC dbo.sp_delete_schedule
@schedule_name = N'NightlyJobs';
GO
B. Löschen eines an einen Auftrag angefügten Zeitplans
Im folgenden Beispiel wird der Zeitplan RunOnce
gelöscht, unabhängig davon, ob der Zeitplan einem Auftrag angefügt ist.
USE msdb;
GO
EXEC dbo.sp_delete_schedule
@schedule_name = 'RunOnce',
@force_delete = 1;
GO