sysmail_delete_mailitems_sp (Transact-SQL)
Trwale usuwa wiadomości e-mail z tabel wewnętrzna poczta bazy danych.
sysmail_delete_mailitems_sp [ [ @sent_before = ] 'sent_before' ]
[ , [ @sent_status = ] 'sent_status' ]
Argumenty
[ @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.Wartość NULL wskazuje wszystkie daty.[ @sent_status= ] 'sent_status'
Deletes e-mails of the type specified by sent_status.sent_status is varchar(8) with no default.Prawidłowe wpisy są sent, unsent, retrying, a failed. Wartość NULL wskazuje wszystkie stany.
Wartości kodów powrotnych
0 (sukces) lub 1 (brak)
Remarks
Wiadomości pocztowych bazy danych i ich załączniki są przechowywane w msdb bazy danych.Wiadomości powinny być okresowo usuwane zapobiec msdb z rosnącym większy niż oczekiwano i zgodne z programem przechowywania dokumentów organizacji.Użycie sysmail_delete_mailitems_sp przechowywane procedury, aby trwale usunąć wiadomości e-mail z tabel bazy danych korespondencji.Opcjonalny argument można usunąć tylko starsze wiadomości e-mail, podając data i czas.Wiadomości e-mail jest starszy niż argument ten zostanie usunięty.Opcjonalny argument innej umożliwia usunięcie wiadomości e-mail tylko określonego typu, określony jako sent_status argument.Należy podać argument @ sent_before or @ sent_status.Aby usunąć wszystkie wiadomości, należy użyć @ sent_before = getdate().
Usunięcie wiadomości e-mail powoduje także usunięcie załączniki związane z tych wiadomości.Usunięcie wiadomości e-mail nie powoduje usunięcia odpowiednich wpisów sysmail_event_log.Użycie sysmail_delete_log_sp , aby usunąć elementy z dziennika.
Uprawnienia
Domyślnie ta procedura przechowywana jest przyznawane do wykonania członków poza sysadmin Rola serwera i DatabaseMailUserRole.Członkowie sysadmin stała rola serwera możliwość wykonać tej procedury do usunięcia wiadomości e-mail wysyłanych przez wszystkich użytkowników. Członkowie DatabaseMailUserRole można usuwać tylko wiadomości e-mail wysłane przez danego użytkownika.
Przykłady
A.Usuwanie wszystkich wiadomości e-mail
W następującym przykładzie usunięto wszystkie wiadomości e-mail w systemie poczty bazy danych.
@ GETDATE DECLARE datetimeSET @ GETDATE = GETDATE () wykonać msdb.dbo.sysmail_delete_mailitems_sp @ sent_before = @ GETDATE; GO
B.Usunięcie najstarszych wiadomości e-mail
W następującym przykładzie usunięto w dzienniku bazy danych programu Poczta e-mail, które są starsze niż October 9, 2005.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_before = 'October 9, 2005' ;
GO
C.Usuwanie wszystkich wiadomości e-mail określonego typu
W następującym przykładzie usunięto wszystkie wiadomości e-mail nie powiodło się w dzienniku poczty bazy danych.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_status = 'failed' ;
GO