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
Sie können Berechtigungen für dieses Verfahren erteilen EXECUTE
, aber diese Berechtigungen können 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