sysmail_delete_log_sp (Transact-SQL)
Gilt für: SQL Server
Löscht Ereignisse aus dem Datenbank-E-Mail-Protokoll. Es werden entweder alle Ereignisse im Protokoll gelöscht oder nur die Ereignisse, die einem Datums- oder Typkriterium entsprechen.
Transact-SQL-Syntaxkonventionen
Syntax
sysmail_delete_log_sp [ [ @logged_before = ] 'logged_before' ]
[ , [ @event_type = ] 'event_type' ]
[ ; ]
Argumente
[ @logged_before = ] 'logged_before'
Löscht Einträge bis zu dem Datum und der Uhrzeit, das durch das Argument @logged_before angegeben wird. @logged_before ist "datetime" NULL
standardmäßig. NULL
gibt alle Datumsangaben an.
[ @event_type = ] 'event_type'
Löscht Protokolleinträge des Typs, der als @event_type angegeben ist. @event_type ist varchar(15) ohne Standard. Gültige Einträge sind:
success
warning
error
informational
NULL steht für alle Ereignistypen.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
Verwenden Sie die sysmail_delete_log_sp
gespeicherte Prozedur, um Einträge aus dem Datenbank-E-Mail Protokoll dauerhaft zu löschen. Mithilfe eines optionalen Arguments können Sie nur ältere Datensätze löschen, indem Sie ein Datum und eine Uhrzeit angeben. Ereignisse, die älter sind als dieses Argument, werden gelöscht. Mit einem optionalen Argument können Sie nur Ereignisse eines bestimmten Typs löschen, die als @event_type-Argument angegeben sind.
Durch das Löschen von Einträgen im Datenbank-E-Mail Protokoll werden die E-Mail-Einträge aus den Datenbank-E-Mail Tabellen nicht gelöscht. Verwenden Sie sysmail_delete_mailitems_sp , um E-Mails aus den Datenbank-E-Mail-Tabellen zu löschen.
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.
Beispiele
A. Alle Ereignisse löschen
Im folgenden Beispiel werden alle Ereignisse im Datenbank-E-Mail-Protokoll gelöscht.
EXEC msdb.dbo.sysmail_delete_log_sp;
GO
B. Löschen der ältesten Ereignisse
Im folgenden Beispiel werden Ereignisse im Datenbank-E-Mail-Protokoll gelöscht, die älter als 9. Oktober 2022 sind.
EXEC msdb.dbo.sysmail_delete_log_sp
@logged_before = 'October 9, 2022';
GO
C. Löschen aller Ereignisse eines bestimmten Typs
Im folgenden Beispiel werden Erfolgsmeldungen im Datenbank-E-Mail-Protokoll gelöscht.
EXEC msdb.dbo.sysmail_delete_log_sp
@event_type = 'success' ;
GO