sp_delete_job (Transact-SQL)

Löscht einen Auftrag.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_delete_job { [ @job_id = ] job_id | [ @job_name = ] 'job_name' } ,
     [ , [ @originating_server = ] 'server' ] 
     [ , [ @delete_history = ] delete_history ]
     [ , [ @delete_unused_schedule = ] delete_unused_schedule ]

Argumente

  • [ @job_id= ] job_id
    Die ID des Auftrags, der gelöscht werden soll. job_id ist ein Wert vom Datentyp uniqueidentifier; der Standardwert ist NULL.

  • [ @job_name= ] 'job_name'
    Der Name des Auftrags, der gelöscht werden soll. job_name ist ein Wert vom Datentyp sysname; der Standardwert ist NULL.

    HinweisHinweis

    Es muss entweder job_id oder job_name angegeben werden, aber beide Angaben sind nicht möglich.

  • [ @originating_server= ] 'server'
    Für die interne Verwendung.

  • [ @delete_history= ] delete_history
    Gibt an, ob der Auftragsverlauf gelöscht werden soll. delete_history ist ein Wert vom Datentyp bit; der Standardwert ist 1. Wenn delete_history den Wert 1 aufweist, wird der Auftragsverlauf für den Auftrag gelöscht. Wenn delete_history den Wert 0 aufweist, wird der Auftragsverlauf nicht gelöscht.

    Wenn ein Auftrag gelöscht, der entsprechende Verlauf aber nicht gelöscht wird, werden die Verlaufsinformationen für den Auftrag nicht im Auftragsverlauf der Benutzeroberfläche des SQL Server-Agents angezeigt; die Informationen befinden sich jedoch weiterhin in der sysjobhistory-Tabelle der msdb-Datenbank.

  • [ @delete_unused_schedule= ] delete_unused_schedule
    Gibt an, ob die an diesen Auftrag angefügten Zeitpläne gelöscht werden sollen, falls sie nicht an einen anderen Auftrag angefügt sind. delete_unused_schedule ist ein Wert vom Datentyp bit; der Standardwert ist 1. Wenn delete_unused_schedule den Wert 1 aufweist, werden die an diesen Auftrag angefügten Zeitpläne gelöscht, falls keine anderen Aufträge auf diesen Zeitplan verweisen. Wenn delete_unused_schedule den Wert 0 aufweist, werden die Zeitpläne nicht gelöscht.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Hinweise

Das @originating_server-Argument ist für die interne Verwendung reserviert.

Das @delete_unused_schedule-Argument bietet die Abwärtskompatibilität mit früheren Versionen von SQL Server, indem Zeitpläne, die an keinen Auftrag angefügt sind, automatisch entfernt werden. Beachten Sie, dass dieser Parameter standardmäßig das Verhalten der Abwärtskompatibilität bietet. Zum Beibehalten der Zeitpläne, die an keinen Auftrag angefügt sind, müssen Sie den Wert 0 für das @delete_unused_schedule-Argument angeben.

Mit SQL Server Management Studio können Aufträge problemlos mithilfe einer grafischen Oberfläche verwaltet werden. Dies ist die empfohlene Vorgehensweise, um die Auftragsinfrastruktur zu erstellen und zu verwalten.

Mit dieser gespeicherten Prozedur können keine Wartungspläne oder Aufträge, die Teil von Wartungsplänen sind, gelöscht werden. Zum Löschen von Wartungsplänen müssen Sie SQL Server Management Studio verwenden.

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

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

Nur Mitglieder der festen Serverrolle sysadmin können sp_delete_job ausführen, um einen beliebigen Auftrag zu löschen. Ein Benutzer, der kein Mitglied der festen Serverrolle sysadmin ist, kann nur Aufträge löschen, deren Besitzer er ist.

Beispiele

Im folgenden Beispiel wird der Auftrag NightlyBackups gelöscht.

USE msdb ;
GO

EXEC sp_delete_job
    @job_name = N'NightlyBackups' ;
GO