sp_delete_schedule (Transact-SQL)

Löscht einen Zeitplan.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_delete_schedule { [ @schedule_id = ] schedule_id | [ @schedule_name = ] 'schedule_name' } ,
     [ @force_delete = ] force_delete

Argumente

  • [ @schedule_id= ] schedule_id
    Die Zeitplan-ID des zu löschenden Zeitplans. schedule_id ist ein Wert vom Datentyp int; der Standardwert ist NULL.

    HinweisHinweis

    Es muss entweder schedule_id oder schedule_name angegeben werden, beide Angaben sind jedoch nicht möglich.

  • [ @schedule_name= ] 'schedule_name'
    Der Name des zu löschenden Zeitplans. schedule_name ist ein Wert vom Datentyp sysname; der Standardwert ist NULL.

    HinweisHinweis

    Es muss entweder schedule_id oder schedule_name angegeben werden, beide Angaben sind jedoch nicht möglich.

  • [ @force_delete = ] force_delete
    Gibt an, ob die Prozedur einen Fehler erzeugen soll, wenn der Zeitplan einem Auftrag angefügt wird. Force_delete besitzt den Datentyp bit mit einem Standardwert von 0. Wenn force_delete den Wert 0 aufweist, erzeugt die gespeicherte Prozedur einen Fehler, wenn der Zeitplan einem Auftrag angefügt wird. Wenn force_delete den Wert 1 aufweist, wird der Zeitplan gelöscht, unabhängig davon, ob der Zeitplan einem Auftrag angefügt ist.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Hinweise

Standardmäßig kann ein Zeitplan nicht gelöscht werden, wenn der Zeitplan einem Auftrag angefügt ist. Um einen Zeitplan zu löschen, der einem Auftrag angefügt ist, geben Sie den Wert 1 für force_delete an. Durch das Löschen eines Zeitplans werden derzeit ausgeführte Aufträge nicht beendet.

Berechtigungen

Standardmäßig können nur Mitglieder der festen Serverrolle sysadmin diese gespeicherte Prozedur ausführen. Andere Benutzer müssen Mitglieder der festen SQL Server-Agent-Datenbankrollen in der msdb-Datenbank sein:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Weitere Informationen zu den Berechtigungen dieser Rollen finden Sie unter Feste Datenbankrollen des SQL Server-Agents.

Nur Mitglieder von sysadmin können einen Auftragszeitplan löschen, dessen Besitzer ein anderer Benutzer ist.

Beispiele

A. Löschen eines Zeitplans

Im folgenden Beispiel wird der Zeitplan NightlyJobs gelöscht. Wenn der Zeitplan einem Auftrag angefügt ist, kann der Zeitplan im Rahmen des Beispiels nicht gelöscht werden.

USE msdb ;
GO

EXEC dbo.sp_delete_schedule
    @schedule_name = N'NightlyJobs' ;
GO

B. Löschen eines Zeitplans, der einem Auftrag angefügt ist

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