Freigeben über


sp_delete_jobsteplog (Transact-SQL)

Gilt für: SQL Server Azure SQL Managed Instance

Entfernt alle SQL Server-Agent Auftragsschrittprotokolle, die mit den Argumenten angegeben sind. Verwenden Sie diese gespeicherte Prozedur, um die Sysjobstepslogs-Tabelle in der msdb Datenbank zu verwalten.

Transact-SQL-Syntaxkonventionen

Syntax

sp_delete_jobsteplog
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @step_id = ] step_id ]
    [ , [ @step_name = ] N'step_name' ]
    [ , [ @older_than = ] older_than ]
    [ , [ @larger_than = ] larger_than ]
[ ; ]

Argumente

[ @job_id = ] 'job_id'

Die ID des Auftrags, der das zu entfernende Auftragsschrittprotokoll enthält. @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.

[ @job_name = ] N'job_name'

Der Name des Auftrags. @job_name ist "sysname" mit der Standardeinstellung "NULL.

Entweder @job_id oder @job_name müssen angegeben werden, beide können jedoch nicht angegeben werden.

[ @step_id = ] step_id

Die ID des Schritts im Auftrag, für den das Auftragsschrittprotokoll gelöscht werden soll. @step_id ist int mit einem Standardwert von NULL. Wenn nicht eingeschlossen, werden alle Auftragsschrittprotokolle im Auftrag gelöscht, es sei denn , @older_than oder @larger_than werden angegeben.

Entweder @step_id oder @step_name können angegeben werden, beide können jedoch nicht angegeben werden.

[ @step_name = ] N'step_name'

Der Name des Schritts im Auftrag, für den das Auftragsschrittprotokoll gelöscht werden soll. @step_name ist "sysname" mit der Standardeinstellung "NULL.

Entweder @step_id oder @step_name können angegeben werden, beide können jedoch nicht angegeben werden.

[ @older_than = ] older_than

Das Datum und die Uhrzeit des ältesten Auftragsschrittprotokolls, das beibehalten werden soll. @older_than ist "datetime" mit einem Standardwert von NULL. Alle Auftragsschrittprotokolle vor diesem Datum und dieser Uhrzeit werden entfernt.

Sowohl @older_than als auch @larger_than können angegeben werden.

[ @larger_than = ] larger_than

Die maximale Größe in Byte für das Auftragsschrittprotokoll, das beibehalten werden soll. @larger_than ist int mit einem Standardwert von NULL. Alle Auftragsschrittprotokolle, die diese Größe überschreiten, werden entfernt.

Sowohl @older_than als auch @larger_than können angegeben werden.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Keine.

Hinweise

sp_delete_jobsteplog befindet sich in der msdb Datenbank.

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

Berechtigungen

Diese gespeicherte Prozedur gehört der db_owner Rolle. Sie können berechtigungen für jeden Benutzer erteilen EXECUTE , diese Berechtigungen können jedoch während eines SQL Server-Upgrades außer Kraft gesetzt werden.

Anderen Benutzern muss eine der folgenden SQL Server-Agent festen Datenbankrollen in der msdb Datenbank gewährt 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 einem anderen Benutzer gehört.

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