sp_purge_jobhistory (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Entfernt die Verlaufsdatensätze für einen Auftrag im SQL Server-Agent-Dienst.

Transact-SQL-Syntaxkonventionen

Syntax

sp_purge_jobhistory   
   {   [ @job_name = ] 'job_name' |   
     | [ @job_id = ] job_id }  
   [ , [ @oldest_date = ] oldest_date ]  

Argumente

@job_name

Der Name des Auftrags, für den die Verlaufsdatensätze gelöscht werden sollen. job_name ist "sysname" mit dem Standardwert NULL. Entweder job_id oder job_name müssen angegeben werden, beide können jedoch nicht angegeben werden.

Hinweis

Member der festen Sysadmin-Serverrolle oder -Member der festen SQLAgentOperatorRole-Datenbankrolle können ausgeführt werden sp_purge_jobhistory , ohne eine job_name oder job_id anzugeben. Wenn sysadmin-Benutzer diese Argumente nicht angeben, wird der Auftragsverlauf für alle lokalen und Multiserveraufträge innerhalb der durch oldest_date angegebenen Zeit gelöscht. Wenn SQLAgentOperatorRole-Benutzer diese Argumente nicht angeben, wird der Auftragsverlauf für alle lokalen Aufträge innerhalb der durch oldest_date angegebenen Zeit gelöscht.

@job_id

Die ID des Auftrags für die zu löschenden Datensätze. job_id ist eindeutiger Bezeichner mit einem Standardwert von NULL. Entweder job_id oder job_name müssen angegeben werden, beide können jedoch nicht angegeben werden.

Informationen dazu, wie Sysadmin- oder SQLAgentOperatorRole-Benutzer dieses Argument verwenden können, finden Sie in der Beschreibung der @job_name.

@oldest_date

Der älteste Datensatz, der im Verlauf beibehalten werden soll. oldest_date ist datetime, mit einem Standardwert von NULL. Wenn oldest_date angegeben wird, werden nur Datensätze entfernt, sp_purge_jobhistory die älter als der angegebene Wert sind.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Hinweise

Nach sp_purge_jobhistory erfolgreicher Ausführung wird eine Nachricht zurückgegeben.

Diese gespeicherte Prozedur teilt den Namen sp_purge_jobhistory mit einem ähnlichen Objekt für den Azure Elastic Jobs-Dienst für Azure SQL-Datenbank. Informationen zur Version der elastischen Aufträge finden Sie unter jobs.sp_purge_jobhistory (Azure Elastic Jobs) (Transact-SQL).

Berechtigungen

Standardmäßig können nur Mitglieder der festen Serverrolle sysadmin oder die feste SQLAgentOperatorRole-Datenbankrolle diese gespeicherte Prozedur ausführen.

Mitglieder von sysadmin können den Auftragsverlauf für alle lokalen und multiserver-Aufträge löschen. Mitglieder von SQLAgentOperatorRole können den Auftragsverlauf nur für alle lokalen Aufträge löschen.

Anderen Benutzern, einschließlich Mitgliedern von SQLAgentUserRole und Mitgliedern von SQLAgentReaderRole, muss explizit die EXECUTE-Berechtigung sp_purge_jobhistoryerteilt werden. Nachdem die EXECUTE-Berechtigung für diese gespeicherte Prozedur erteilt wurde, können dieses Benutzer nur den Verlauf für Aufträge leeren, deren Besitzer sie sind.

Die festen Datenbankrollen SQLAgentUserRole, SQLAgentReaderRole und SQLAgentOperatorRole befinden sich in der msdb Datenbank. Ausführliche Informationen zu ihren Berechtigungen finden Sie unter SQL Server-Agent festen Datenbankrollen.

Beispiele

.A Entfernen des Verlaufs für einen bestimmten Auftrag

Im folgenden Beispiel wird der Verlauf eines Auftrags mit dem Namen NightlyBackups entfernt.

USE msdb ;  
GO  
  
EXEC dbo.sp_purge_jobhistory  
    @job_name = N'NightlyBackups' ;  
GO  

B. Entfernen des Verlaufs für alle Aufträge

Hinweis

Nur Mitglieder der festen Serverrolle "sysadmin " und "Member" von SQLAgentOperatorRole können den Verlauf für alle Aufträge entfernen. Wenn sysadmin-Benutzer diese gespeicherte Prozedur ohne Parameter ausführen, wird der Auftragsverlauf für alle lokalen und multiserver-Aufträge gelöscht. Wenn SQLAgentOperatorRole-Benutzer diese gespeicherte Prozedur ohne Parameter ausführen, wird nur der Auftragsverlauf für alle lokalen Aufträge gelöscht.

Im folgenden Beispiel wird die Prozedur ohne Parameter ausgeführt, um alle Verlaufsdatensätze zu entfernen.

USE msdb ;  
GO  
  
EXEC dbo.sp_purge_jobhistory ;  
GO  

Nächste Schritte