sysmail_delete_mailitems_sp (języka Transact-SQL)
Powoduje trwałe usuwanie wiadomości e-mail z tabel wewnętrznej bazy danych poczty.
Składnia
sysmail_delete_mailitems_sp [ [ @sent_before = ] 'sent_before' ]
[ , [ @sent_status = ] 'sent_status' ]
Argumenty
[ @sent_before= ] 'sent_before'
Usuwa wiadomości e-mail do data i czas jako sent_before argumentu.sent_beforejest datetime o wartości NULL jako domyślny.Wartość NULL wskazuje wszystkie daty.[ @sent_status= ] 'sent_status'
Usuwa wiadomości e-mail z typem określonym przez sent_status.sent_statusjest varchar(8)z nie domyślnych.Valid entries are sent, unsent, retrying, and failed.Wartość NULL wskazuje wszystkie stany.
Wartości kodów powrotnych
0 (sukces) lub 1 (błąd)
Uwagi
Wiadomości pocztowe bazy danych i ich załączniki są przechowywane w msdb bazy danych.Wiadomości należy okresowo usuwane w celu zapobieżenia msdb z uprawy większy niż oczekiwano i zgodne z programem retencji organizacji dokumentu.Użycie sysmail_delete_mailitems_sp procedura składowana , aby trwale usunąć wiadomości e-mail z tabel bazy danych korespondencji.Opcjonalny argument można usunąć tylko starszych wiadomości e-mail, podając data i czas.Wiadomości e-mail starsze niż ten argument zostanie usunięty.Kolejny argument opcjonalny umożliwia usunięcie wiadomości e-mail tylko określonego typu, określonego jako sent_status argumentu.Argument musi dostarczyć albo dla @ sent_before lub @ sent_status.Aby usunąć wszystkie wiadomości, użyj @ sent_before = getdate().
Usunięcie wiadomości e-mail powoduje także usunięcie załączników dotyczących tych wiadomości.Usunięcie wiadomości e-mail nie powoduje usunięcia odpowiednich wpisów w sysmail_event_log.Użycie sysmail_delete_log_sp do usuwania elementów z dziennika.
Uprawnienia
Domyślnie ta procedura składowana przyznaje się na wykonanie członkom poza sysadmin stała rola serwera i DatabaseMailUserRole.Członkowie sysadmin stała rola serwera można wykonać tę procedurę, aby usunąć wiadomości e-mail wysyłanych przez wszystkich użytkowników.Członkowie DatabaseMailUserRole można usuwać tylko wiadomości e-mail wysyłanych przez 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.
DECLARE @GETDATE datetimeSET @GETDATE = GETDATE()EXECUTE 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 wiadomości e-mail w dzienniku bazy danych korespondencji, 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 bazy danych poczty.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_status = 'failed' ;
GO
Zobacz także