När du använder Database Mail för att skicka e-post i SQL Server kan du använda sysmail_delete_log_sp
lagrad procedur för att ta bort objekt från händelseloggen.
Du kan välja att radera alla händelser, händelser baserat på deras loggade datum (dvs. före ett visst datum) eller händelser baserat på händelsens typ.
Visa alla händelser
Innan du börjar ta bort några händelser kanske du vill ta en titt på dem. Du kan göra detta med sysmail_event_log
visa.
SELECT * FROM msdb.dbo.sysmail_event_log;
Ta bort gamla händelser
För att radera alla händelser som loggades före ett visst datum, använd @logged_before
argument.
Exempel:
EXECUTE msdb.dbo.sysmail_delete_log_sp
@logged_before = '2020-08-25';
Ta bort händelser av en viss typ
Du kan använda @event_type
argument för att endast ta bort händelser av en given typ.
Här är ett exempel på att radera alla informationshändelser.
EXECUTE msdb.dbo.sysmail_delete_log_sp
@event_type = 'information';
Ta bort alla händelser
För att radera alla händelser, kör sysmail_delete_log_sp
utan några argument.
EXECUTE msdb.dbo.sysmail_delete_log_sp;
Ta bort postförsändelser
sysmail_delete_log_sp
proceduren är endast för att ta bort poster från loggen. Det tar inte bort postförsändelserna från Databas Mail-tabellerna.
Använd sysmail_delete_mailitems_sp
för att ta bort e-postobjekt från Databas Mail-tabellerna.