Megosztás a következőn keresztül:


sysmail_delete_mailitems_sp (Transact-SQL)

A következőkre vonatkozik:SQL Server

Véglegesen törli az e-maileket az Adatbázisposta belső tábláiból.

Transact-SQL szintaxis konvenciók

Szemantika

sysmail_delete_mailitems_sp [ [ @sent_before = ] 'sent_before' ]
    [ , [ @sent_status = ] 'sent_status' ]
[ ; ]

Érvek

[ @sent_before = ] 'sent_before'

A @sent_before argumentumként megadott dátumig és időpontig törli az e-maileket. @sent_before alapértelmezett dátum/időNULL érték. NULL az összes dátumot jelzi.

[ @sent_status = ] 'sent_status'

Törli a @sent_status által megadott típusú e-maileket. @sent_status a varchar(8) alapértelmezés nélkül. Az érvényes bejegyzések a következők:

  • sent
  • unsent
  • retrying
  • failed.

NULL az összes állapotot jelzi.

Kódértékek visszaadása

0 (sikeres) vagy 1 (hiba).

Megjegyzések

Az adatbázis e-mailjei és mellékletei az msdb adatbázisban vannak tárolva. Az üzeneteket rendszeresen törölni kell, hogy ne msdb növekedjen a vártnál, és hogy megfeleljenek a szervezetek dokumentummegőrzési programja előírásainak. sysmail_delete_mailitems_sp A tárolt eljárással véglegesen törölheti az e-maileket az adatbázis-levelezési táblákból. Az opcionális argumentumokkal csak a régebbi e-maileket törölheti dátum és idő megadásával. Az argumentumnál régebbi e-mailek törlődnek. Egy másik választható argumentum lehetővé teszi, hogy csak az @sent_status argumentumként megadott, bizonyos típusú e-maileket törölje. Meg kell adnia egy argumentumot @sent_before vagy @sent_status. Az összes üzenet törléséhez használja a következőt @sent_before = GETDATE();: .

Az e-mailek törlése az üzenetekkel kapcsolatos mellékleteket is törli. Az e-mail törlése nem törli a megfelelő bejegyzéseket a(z) alkalmazásban sysmail_event_log. Az sysmail_delete_log_sp használatával törölhet elemeket a naplóból.

Engedélyek

Alapértelmezés szerint ez a tárolt eljárás a sysadmin rögzített kiszolgálói szerepkörön és a DatabaseMailUserRole-n kívüli tagok számára történő végrehajtásra szolgál. A sysadmin rögzített kiszolgálói szerepkör tagjai végrehajthatják ezt az eljárást az összes felhasználó által küldött e-mailek törléséhez. A DatabaseMailUserRole tagjai csak az adott felhasználó által küldött e-maileket törölhetik.

Példák

Egy. Az összes e-mail törlése

Az alábbi példa törli az adatbázis levelezési rendszerében lévő összes e-mailt.

DECLARE @GETDATE AS DATETIME;

SET @GETDATE = GETDATE();

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
    @sent_before = @GETDATE;
GO

B. A legrégebbi e-mailek törlése

Az alábbi példa törli a 2022. október 9-nél régebbi e-maileket az Adatbázisposta naplójában.

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_before = 'October 9, 2022';
GO

C. Az összes e-mail törlése egy bizonyos típusú e-mailből

Az alábbi példa törli az adatbázis levelezési naplójában található összes sikertelen e-mailt.

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_status = 'failed';
GO