Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Löschen von Ereignissen aus dem Datenbank-E-Mail-Protokoll in SQL Server (T-SQL)

Wenn Sie Datenbank-E-Mail zum Senden von E-Mails in SQL Server verwenden, können Sie sysmail_delete_log_sp verwenden gespeicherte Prozedur zum Löschen von Elementen aus dem Ereignisprotokoll.

Sie können alle Ereignisse, Ereignisse basierend auf ihrem Protokolldatum (d. h. vor einem bestimmten Datum) oder Ereignisse basierend auf dem Ereignistyp löschen.

Alle Veranstaltungen anzeigen

Bevor Sie mit dem Löschen von Ereignissen beginnen, sollten Sie sich diese ansehen. Sie können dies mit dem sysmail_event_log tun ansehen.

SELECT * FROM msdb.dbo.sysmail_event_log;

Alte Ereignisse löschen

Um alle Ereignisse zu löschen, die vor einem bestimmten Datum protokolliert wurden, verwenden Sie den @logged_before Argument.

Beispiel:

EXECUTE msdb.dbo.sysmail_delete_log_sp  
    @logged_before = '2020-08-25';

Ereignisse eines bestimmten Typs löschen

Sie können den @event_type verwenden Argument, um nur Ereignisse eines bestimmten Typs zu löschen.

Hier ist ein Beispiel für das Löschen aller Informationsereignisse.

EXECUTE msdb.dbo.sysmail_delete_log_sp  
    @event_type = 'information';

Alle Ereignisse löschen

Um alle Ereignisse zu löschen, führen Sie sysmail_delete_log_sp aus ohne Argumente.

EXECUTE msdb.dbo.sysmail_delete_log_sp;

E-Mails löschen

Die sysmail_delete_log_sp Der Vorgang dient ausschließlich dem Löschen von Einträgen aus dem Protokoll. Die E-Mail-Elemente werden nicht aus den Datenbank-E-Mail-Tabellen gelöscht.

Verwenden Sie sysmail_delete_mailitems_sp um E-Mail-Elemente aus den Datenbank-E-Mail-Tabellen zu löschen.