Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
E-posta iletilerini Veritabanı Postası iç tablolarından kalıcı olarak siler.
Transact-SQL söz dizimi kuralları
Sözdizimi
sysmail_delete_mailitems_sp [ [ @sent_before = ] 'sent_before' ]
[ , [ @sent_status = ] 'sent_status' ]
[ ; ]
Tartışmalar
[ @sent_before = ] 'sent_before'
@sent_before bağımsız değişkeni olarak sağlanan tarih ve saate kadar olan e-postaları siler.
@sent_before , varsayılan olarak tarih saat değeridir NULL .
NULL tüm tarihleri gösterir.
[ @sent_status = ] 'sent_status'
@sent_status tarafından belirtilen türde e-postaları siler. @sent_status , varsayılan olmayan varchar(8) değeridir. Geçerli girdiler şunlardır:
sentunsentretrying-
failed.
NULL tüm durumları gösterir.
Dönüş kodu değerleri
0 (başarı) veya 1 (başarısızlık).
Açıklamalar
Veritabanı Posta iletileri ve ekleri veritabanında depolanır msdb . İletilerin beklenenden daha fazla büyümesini önlemek msdb ve kuruluşunuzun belge saklama programıyla uyumlu olması için düzenli aralıklarla silinmesi gerekir. Veritabanı Postası sysmail_delete_mailitems_sp tablolarından e-posta iletilerini kalıcı olarak silmek için saklı yordamı kullanın. İsteğe bağlı bağımsız değişken, tarih ve saat sağlayarak yalnızca eski e-postaları silmenizi sağlar. Bu bağımsız değişkenden eski e-postalar silinir. İsteğe bağlı başka bir bağımsız değişken, yalnızca @sent_status bağımsız değişkeni olarak belirtilen belirli bir türdeki e-postaları silmenize olanak tanır. @sent_before veya@sent_status için bir bağımsız değişken sağlamanız gerekir. Tüm iletileri silmek için kullanın @sent_before = GETDATE();.
E-postanın silinmesi, bu iletilerle ilgili ekleri de siler. E-posta silindiğinde içindeki sysmail_event_logilgili girdiler silinmez. Öğeleri günlükten silmek için sysmail_delete_log_sp kullanın.
İzinler
Varsayılan olarak, bu saklı yordam sysadmin sabit sunucu rolü ve DatabaseMailUserRole dışındaki üyelere yürütülmek üzere verilir. Sysadmin sabit sunucu rolünün üyeleri, tüm kullanıcılar tarafından gönderilen e-postaları silmek için bu yordamı yürütebilir. DatabaseMailUserRole üyeleri yalnızca o kullanıcı tarafından gönderilen e-postaları silebilir.
Örnekler
A. Tüm e-postaları silme
Aşağıdaki örnek, Veritabanı Posta sistemindeki tüm e-postaları siler.
DECLARE @GETDATE AS DATETIME;
SET @GETDATE = GETDATE();
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_before = @GETDATE;
GO
B. En eski e-postaları silme
Aşağıdaki örnek, Veritabanı Posta günlüğünde 9 Ekim 2022'den eski e-postaları siler.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_before = 'October 9, 2022';
GO
C. Belirli bir türdeki 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