Share via


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 vom Datentyp int und hat den Standardwert 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 Zeitplan. schedule_name ist vom Datentyp sysname und hat den Standardwert 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 verursachen soll, wenn der Zeitplan an einen Auftrag angefügt wird. Force_delete ist vom Datentyp bit. Der Standardwert ist 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. Anderen Benutzern muss eine der folgenden festen Datenbankrollen des SQL Server-Agents in der msdb-Datenbank zugewiesen werden:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Hinweis: Der Auftragsbesitzer kann einem Zeitplan einen Auftrag anfügen oder diesen von ihm trennen, und zwar ohne der Zeitplanbesitzer sein zu müssen. Ein Zeitplan kann jedoch nicht gelöscht werden, wenn durch das Trennen keine Aufträge mehr vorhanden wären, außer der Aufrufer ist der Zeitplanbesitzer.

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 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

Siehe auch

Verweis

sp_add_schedule (Transact-SQL)

Konzepte

Implementieren von Aufträgen