Teilen über


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