Udostępnij za pośrednictwem


sysmail_delete_mailitems_sp (języka Transact-SQL)

Powoduje trwałe usuwanie wiadomości e-mail z tabel wewnętrznej bazy danych poczty.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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