Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Supprimer les événements du journal de messagerie de la base de données dans SQL Server (T-SQL)

Lorsque vous utilisez Database Mail pour envoyer des e-mails dans SQL Server, vous pouvez utiliser le sysmail_delete_log_sp procédure stockée pour supprimer des éléments du journal des événements.

Vous pouvez choisir de supprimer tous les événements, les événements en fonction de leur date d'enregistrement (c'est-à-dire avant une certaine date) ou les événements en fonction du type d'événement.

Afficher tous les événements

Avant de commencer à supprimer des événements, vous voudrez peut-être les consulter. Vous pouvez le faire avec le sysmail_event_log vue.

SELECT * FROM msdb.dbo.sysmail_event_log;

Supprimer les anciens événements

Pour supprimer tous les événements enregistrés avant une certaine date, utilisez le @logged_before arguments.

Exemple :

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

Supprimer les événements d'un certain type

Vous pouvez utiliser le @event_type argument pour supprimer uniquement les événements d'un type donné.

Voici un exemple de suppression de tous les événements informatifs.

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

Supprimer tous les événements

Pour supprimer tous les événements, exécutez sysmail_delete_log_sp sans aucun argument.

EXECUTE msdb.dbo.sysmail_delete_log_sp;

Suppression d'éléments de messagerie

Le sysmail_delete_log_sp procédure sert uniquement à supprimer des entrées du journal. Il ne supprime pas les éléments de messagerie des tables de messagerie de base de données.

Utilisez sysmail_delete_mailitems_sp pour supprimer des e-mails des tables de messagerie de la base de données.