Udostępnij za pośrednictwem


sysmail_delete_mailitems_sp (Transact-SQL)

Trwale usuwa wiadomości e-mail z tabel wewnętrzna poczta bazy danych.

Topic link iconKonwencje składni języka Transact-SQL

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