Freigeben über


sp_delete_jobsteplog (Transact-SQL)

Entfernt alle SQL Server-Agent-Auftragsschrittprotokolle, die mit den Argumenten angegeben sind. Verwenden Sie diese gespeicherte Prozedur zum Warten der sysjobstepslogs-Tabelle in der msdb-Datenbank.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_delete_jobsteplog { [ @job_id = ] 'job_id' | [ @job_name = ] 'job_name' }
       [ , [ @step_id = ] step_id| [ @step_name = ] 'step_name' ]
       [ , [ @older_than = ] 'date' ]
       [ , [ @larger_than = ] 'size_in_bytes' ]

Argumente

  • [ @job_id =] 'job_id'
    Die ID des Auftrags, der das zu entfernende Auftragsschrittprotokoll enthält. job_id ist vom Datentyp int und hat den Standardwert NULL.

  • [ @job_name =] 'job_name'
    Der Name des Auftrags. job_name ist vom Datentyp sysname; der Standardwert ist NULL.

    HinweisHinweis

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

  • [ @step_id =] step_id
    Die ID des Schritts im Auftrag, für den das Auftragsschrittprotokoll gelöscht werden soll. Falls der Wert nicht angegeben wird, werden alle Auftragsschrittprotokolle in dem Auftrag gelöscht, es sei denn, @older_than oder @larger_than ist angegeben. step_id ist vom Datentyp int und hat den Standardwert NULL.

  • [ @step_name =] 'step_name'
    Der Name des Schritts im Auftrag, für den das Auftragsschrittprotokoll gelöscht werden soll. step_name ist vom Datentyp sysname und hat den Standardwert NULL.

    HinweisHinweis

    Es kann entweder step_id oder step_name angegeben werden, aber beide Angaben sind nicht möglich.

  • [ @older_than =] 'date'
    Das Datum und die Uhrzeit des ältesten Auftragsschrittprotokolls, das beibehalten werden soll. Alle Auftragsschrittprotokolle, die älter sind als das angegebene Datum und die Uhrzeit, werden entfernt. date ist vom Datentyp datetime und hat den Standardwert NULL. Es können sowohl @older_than als auch @larger_than angegeben werden.

  • [ @larger_than =] 'size_in_bytes'
    Die maximale Größe in Byte für das Auftragsschrittprotokoll, das beibehalten werden soll. Alle Auftragsschrittprotokolle, die diese Größe überschreiten, werden entfernt. Es können sowohl @larger_than als auch @older_than angegeben werden.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Hinweise

sp_delete_jobsteplog befindet sich in der msdb-Datenbank.

Wenn keine Argumente außer @job_id oder @job_name angegeben sind, werden alle Auftragsschrittprotokolle für den angegebenen Auftrag gelöscht.

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 von sysadmin können ein Auftragsschrittprotokoll löschen, das ein anderer Benutzer besitzt.

Beispiele

A. Entfernen aller Auftragsschrittprotokolle aus einem Auftrag

Im folgenden Beispiel werden alle Auftragsschrittprotokolle für den Weekly Sales Data Backup-Auftrag entfernt.

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup';
GO

B. Entfernen des Auftragsschrittprotokolls für einen bestimmten Auftragsschritt

Im folgenden Beispiel wird das Auftragsschrittprotokoll für Schritt 2 im Weekly Sales Data Backup-Auftrag entfernt.

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 2;
GO

C. Entfernen aller Auftragsschrittprotokolle auf der Grundlage von Alter und Größe

Im folgenden Beispiel werden alle Auftragsschrittprotokolle aus dem Weekly Sales Data Backup-Auftrag entfernt, die älter sind als 12 Uhr mittags, 25. Oktober 2005, und die größer sind als 100 MB (Megabyte).

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup',
    @older_than = '10/25/2005 12:00:00',
    @larger_than = 104857600;
GO