Aracılığıyla paylaş


sysmail_delete_mailitems_sp (Transact-SQL)

Kalıcı olarak e-posta iletileri, Database Mail iç tablodan siler.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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

Bağımsız değişkenler

  • [ @sent_before= ] 'sent_before'
    tarih ve saat olarak sağlanan e-postaları siler sent_before bağımsız değişkeni.sent_beforeİş datetime ile boş olarak varsayılan.null tüm tarihleri gösterir.

  • [ @sent_status= ] 'sent_status'
    Tarafından belirtilen türde e-postaları siler sent_status.sent_statusİş varchar(8)ile hiçbir varsayılan.Valid entries are sent, unsent, retrying, and failed.BOŞ, tüm durumları gösterir.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (başarısız)

Açıklamalar

Veritabanı posta iletilerini ve eklerini depolanmış olan msdb veritabanı.İletileri düzenli aralıklarla silinmesi gereken önlemek için msdb beklenenden daha büyük büyümesini engellemek ve kuruluşların belge koruma programınızla birlikte uymak için.Use sysmail_delete_mailitems_spveritabanı posta tablodan gelen e-posta iletileri kalıcı olarak silmek içinsaklı yordam . İsteğe bağlı bağımsız değişken yalnızca eski e-postaları bir tarih ve saatsağlayarak silmenize izin verir.Bu bağımsız değişkenden eski e-postalar silinir.Başka bir isteğe bağlı bağımsız değişkeni yalnızca belirtilen belirli bir türde, postalar silmenizi sağlayan sent_status bağımsız değişkeni.Bir bağımsız değişken için sağlamalısınız @ sent_before veya @ sent_status.Tüm iletileri silmek için @ sent_before = getdate().

E-posta silme, bu iletileri ilgili ekleri siler.E-posta silme silme ilgili girişleri sysmail_event_log.Use sysmail_delete_log_sp öğeleri günlük dosyasını silmek için.

İzinler

Varsayılan olarak, bu saklı yordam yürütme için üyelerine kapalı verilir sysadmin sabit sunucu rolü ve DatabaseMailUserRole.Üyeleri sysadmin sabit sunucu rolü için e-postaları silmek için bu yordamı tüm kullanıcılar tarafından gönderilen yürütmek .Üyeleri DatabaseMailUserRole yalnızca bu kullanıcı tarafından gönderilen e-postalar silebilirsiniz.

Örnekler

A.Tüm e-postaları silme

Aşağıdaki örnekte, veritabanı posta sisteminde tüm e-postalar silinir.

DECLARE @GETDATE datetimeSET @GETDATE = GETDATE()EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_before = @GETDATE;GO

B.Eski e-postaları silme

Aşağıdaki örnek veritabanı posta günlüğündeki daha eski postalar siler October 9, 2005.

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

C.Belirli bir türün tüm e-postaları silme

Aşağıdaki örnek veritabanı posta günlüğündeki tüm başarısız e-postaları siler.

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