Aracılığıyla paylaş


sysmail_delete_mailitems_sp (Transact-SQL)

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

Topic link iconTransact-SQL sözdizimi kuralları

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

Bağımsız değişkenler

  • [ @sent_before= ] 'sent_before'
    Deletes e-mails up to the date and time provided as the sent_before argument.sent_before is datetime with NULL as default.null, tüm tarihlerin gösterir.

  • [ @sent_status= ] 'sent_status'
    Deletes e-mails of the type specified by sent_status.sent_status is varchar(8) with no default.Geçerli girdiler sent, unsent, retrying, ve failed. null, tüm durumları gösterir.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Remarks

Veritabanı posta iletileri ve eklerini depolanır msdb veritabanıdır.Iletileri düzenli olarak engellemek için silinmesi gerekiyor msdb beklenenden daha büyük büyümesini engellemek ve kuruluşların belge koruma programınızda uymak için.Use sysmail_delete_mailitems_sp e-posta iletileri, veritabanı posta tablolarından kalıcı olarak silmek için saklı yordamıyla.Isteğe bağlı bir bağımsız değişken yalnızca eski e-postalar, bir tarih ve saat sağlayarak silmenize izin verir.Bu bağımsız değişkeni ' daha eski e-postalar silinir.Başka bir isteğe bağlı bağımsız değişkeni olarak belirtilen belirli türde, yalnızca belirli bir e silmenizi sağlayan sent_status bağımsız değişkeni.Bir bağımsız değişken için sağlamalıdır @ sent_before or @ sent_status.Tüm iletileri silmek için kullanın. sent_before getdate() =.

E-posta silmek için bu iletileri ilgili ek siler.E-posta silinmesi, ilgili girişleri silmez sysmail_event_log.Kullanımı sysmail_delete_log_sp günlükten öğeleri silmek için.

İzinler

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

Örnekler

C.Tüm e-postaları silme

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

DECLARE @ GETDATE datetimeSET @ GETDATE GETDATE () yürütmek msdb.dbo.sysmail_delete_mailitems_sp @ sent_before = @ GETDATE = GO;

b.En yeniden en eskiye giden bir sıralamada e-postaları silme

Aşağıdaki örnekte, daha eski olan veritabanı posta günlüğüne postalar silinir. October 9, 2005.

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

c.Belirli bir türdeki tüm e-postaları silme

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

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