sysmail_delete_mailitems_sp (Transact-SQL)
Kalıcı olarak e-posta iletileri, veritabanı posta iç tablodan siler.
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