sp_purge_jobhistory (Transact-SQL)sp_purge_jobhistory (Transact-SQL)

Dieses Thema gilt für: JaSQL Server (ab 2008)JaAzure SQL-DatenbankJaAzure SQL Data Warehouse Ja Parallel Datawarehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Entfernt die Verlaufsdatensätze für einen Auftrag.Removes the history records for a job.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax


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

ArgumenteArguments

[ @job_name= ] "Job_name"[ @job_name= ] 'job_name'
Der Name des Auftrags, für den die Verlaufsdatensätze gelöscht werden sollen.The name of the job for which to delete the history records. Job_nameist Sysname, hat den Standardwert NULL.job_nameis sysname, with a default of NULL. Entweder Job_id oder Job_name muss angegeben werden, aber beide können nicht angegeben werden.Either job_id or job_name must be specified, but both cannot be specified.

Hinweis

Mitglieder der Sysadmin -Serverrolle oder Mitglieder der der SQLAgentOperatorRole feste Datenbankrolle können ausführen Sp_purge_jobhistory ohne Angabe einer Job_name oder Job_id.Members of the sysadmin fixed server role or members of the SQLAgentOperatorRole fixed database role can execute sp_purge_jobhistory without specifying a job_name or job_id. Wenn Sysadmin -Benutzer diese Argumente nicht angeben, wird der Auftragsverlauf für alle lokalen und Multiserveraufträge innerhalb der angegebenen Zeit gelöscht Oldest_date.When sysadmin users do not specify these arguments, the job history for all local and multiserver jobs is deleted within the time specified by oldest_date. Wenn SQLAgentOperatorRole -Benutzer diese Argumente nicht angeben, wird der Auftragsverlauf für alle lokalen Aufträge innerhalb der angegebenen Zeit gelöscht Oldest_date.When SQLAgentOperatorRole users do not specify these arguments, the job history for all local jobs is deleted within the time specified by oldest_date.

[ @job_id= ] job_id[ @job_id= ] job_id
Die ID des Auftrags für die zu löschenden Datensätze.The job identification number of the job for the records to be deleted. Job_idist "uniqueidentifier", hat den Standardwert NULL.job_idis uniqueidentifier, with a default of NULL. Entweder Job_id oder Job_name muss angegeben werden, aber beide können nicht angegeben werden.Either job_id or job_name must be specified, but both cannot be specified. Siehe den Hinweis in der Beschreibung der @job_name Informationen Sysadmin oder SQLAgentOperatorRole Benutzer dieses Argument verwenden können.See the note in the description of @job_name for information about how sysadmin or SQLAgentOperatorRole users can use this argument.

[ @oldest_date =] Oldest_date[ @oldest_date = ] oldest_date
Der älteste Datensatz, der im Verlauf beibehalten werden soll.The oldest record to retain in the history. Oldest_date ist "DateTime", hat den Standardwert NULL.oldest_date is datetime, with a default of NULL. Wenn Oldest_date angegeben wird, Sp_purge_jobhistory entfernt nur Datensätze, die älter sind als der angegebene Wert ist.When oldest_date is specified, sp_purge_jobhistory only removes records that are older than the value specified.

RückgabecodewerteReturn Code Values

0 (Erfolg) oder 1 (Fehler)0 (success) or 1 (failure)

ResultsetsResult Sets

KeineNone

HinweiseRemarks

Wenn Sp_purge_jobhistory wird erfolgreich abgeschlossen, eine Nachricht zurückgegeben.When sp_purge_jobhistory completes successfully, a message is returned.

BerechtigungenPermissions

Standardmäßig sind nur Mitglieder der der Sysadmin festen Serverrolle oder die SQLAgentOperatorRole festen Datenbankrolle kann diese gespeicherte Prozedur ausführen.By default, only members of the sysadmin fixed server role or the SQLAgentOperatorRole fixed database role can execute this stored procedure. Mitglieder der Sysadmin können den Auftragsverlauf für alle lokalen und Multiserveraufträge leeren.Members of sysadmin can purge the job history for all local and multiserver jobs. Mitglieder der SQLAgentOperatorRole können den Auftragsverlauf für alle lokalen Aufträge nur löschen.Members of SQLAgentOperatorRole can purge the job history for all local jobs only.

Anderen Benutzern, einschließlich Elementen der SQLAgentUserRole und Mitglieder der SQLAgentReaderRole, muss explizit gewährt werden die EXECUTE-Berechtigung auf Sp_purge_jobhistory.Other users, including members of SQLAgentUserRole and members of SQLAgentReaderRole, must explicitly be granted the EXECUTE permission on sp_purge_jobhistory. 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.After being granted EXECUTE permission on this stored procedure, these users can only purge the history for jobs that they own.

Die SQLAgentUserRole, SQLAgentReaderRole, und SQLAgentOperatorRole feste Datenbankrollen sind der Msdb Datenbank.The SQLAgentUserRole, SQLAgentReaderRole, and SQLAgentOperatorRole fixed database roles are in the msdb database. Einzelheiten zu deren Berechtigungen finden Sie unter SQL Server Agent Fixed Database Roles.For details about their permissions, see SQL Server Agent Fixed Database Roles.

BeispieleExamples

A.A. Entfernen des Verlaufs für einen bestimmten AuftragRemove history for a specific job

Im folgenden Beispiel wird der Verlauf eines Auftrags mit dem Namen NightlyBackups entfernt.The following example removes the history for a job named NightlyBackups.

USE msdb ;  
GO  

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

B.B. Entfernen des Verlaufs für alle AufträgeRemove history for all jobs

Hinweis

Nur Mitglieder der der Sysadmin -Serverrolle und Mitglieder der festen der SQLAgentOperatorRole Verlaufsprotokolle für alle Aufträge entfernen können.Only members of the sysadmin fixed server role and members of the SQLAgentOperatorRole can remove history for all jobs. Wenn Sysadmin -Benutzer diese gespeicherte Prozedur ohne Parameter ausführen, wird der Auftragsverlauf für alle lokalen und Multiserveraufträge geleert.When sysadmin users execute this stored procedure with no parameters, the job history for all local and multiserver jobs is purged. Wenn SQLAgentOperatorRole -Benutzer diese gespeicherte Prozedur ohne Parameter ausführen, wird nur der Auftragsverlauf für alle lokalen Aufträge geleert.When SQLAgentOperatorRole users execute this stored procedure with no parameters, only the job history for all local jobs is purged.

Im folgenden Beispiel wird die Prozedur ohne Parameter ausgeführt, um alle Verlaufsdatensätze zu entfernen.The following example executes the procedure with no parameters to remove all history records.

USE msdb ;  
GO  

EXEC dbo.sp_purge_jobhistory ;  
GO  

Siehe auchSee Also

sp_help_job (Transact-SQL) sp_help_job (Transact-SQL)
sp_help_jobhistory (Transact-SQL) sp_help_jobhistory (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL) System Stored Procedures (Transact-SQL)
GRANT (Objektberechtigungen) (Transact-SQL)GRANT Object Permissions (Transact-SQL)