sysmail_delete_mailitems_sp (Transact-SQL)
Data aggiornamento: 14 aprile 2006
Elimina definitivamente messaggi di posta elettronica dalle tabelle interne di Posta elettronica database.
Convenzioni della sintassi Transact-SQL
Sintassi
sysmail_delete_mailitems_sp [ [ @sent_before = ] 'sent_before' ]
[ , [ @sent_status = ] 'sent_status' ]
Argomenti
- [ @sent_before= ] 'sent_before'
Elimina i messaggi di posta elettronica anteriori alla data e all'ora specificate nell'argomento sent_before. sent_before è di tipo datetime e il valore predefinito è NULL, che indica tutte le date.
- [ @sent_status= ] 'sent_status'
Elimina i messaggi di posta elettronica del tipo specificato in sent_status. sent_status è di tipo varchar(8) e non prevede alcun valore predefinito. I possibili valori sono sent, unsent, retrying e failed. NULL indica tutti gli stati.
Osservazioni
I messaggi di Posta elettronica database e i relativi allegati sono archiviati nel database msdb. È consigliabile eliminare periodicamente alcuni messaggi per evitare che le dimensioni di msdb aumentino oltre il livello previsto e per rispettare il programma di memorizzazione dei documenti definito nella propria organizzazione. Utilizzare la stored procedure sysmail_delete_mailitems_sp per eliminare definitivamente messaggi di posta elettronica dalle tabelle di Posta elettronica database. Un argomento facoltativo consente di eliminare solo i messaggi di posta elettronica meno recenti tramite l'impostazione di una data e un'ora. I messaggi di posta elettronica con una data anteriore a quella specificata nell'argomento verranno eliminati. Un altro argomento facoltativo consente di eliminare solo i messaggi di posta elettronica di un determinato tipo, specificato nell'argomento sent_status. A partire da SQL Server 2005 Service Pack 1, è necessario specificare un argomento per @sent_before o per @sent_status. Entrambi gli argomenti non possono essere NULL.
L'eliminazione di un messaggio di posta elettronica comporta la rimozione degli allegati correlati a tale messaggio, ma non la rimozione delle voci corrispondenti in sysmail_event_log. Per eliminare elementi dal log, utilizzare sysmail_delete_log_sp.
Autorizzazioni
Per impostazione predefinita, l'autorizzazione per l'esecuzione di questa stored procedure viene concessa ai membri del ruolo predefinito del server sysadmin e di DatabaseMailUserRole. I membri del ruolo predefinito del server sysadmin possono eseguire questa procedura per eliminare i messaggi di posta elettronica inviati da tutti gli utenti. I membri di DatabaseMailUserRole possono eliminare solo i messaggi di posta elettronica che hanno inviato personalmente.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Esempi
A. Eliminazione di tutti i messaggi di posta elettronica
Nell'esempio seguente vengono eliminati tutti i messaggi di posta elettronica nel sistema di Posta elettronica database.
DECLARE @GETDATE datetime
SET @GETDATE = GETDATE()
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_before = @GETDATE;
GO
B. Eliminazione dei messaggi di posta elettronica meno recenti
Nell'esempio seguente vengono eliminati i messaggi di posta elettronica nel log di Posta elettronica database con una data anteriore a October 9, 2005
.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_before = 'October 9, 2005' ;
GO
C. Eliminazione di tutti i messaggi di posta elettronica di un determinato tipo
Nell'esempio seguente vengono eliminati dal log di Posta elettronica database tutti i messaggi di posta elettronica che non è stato possibile inviare.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_status = 'failed' ;
GO
Vedere anche
Riferimento
sysmail_allitems (Transact-SQL)
sysmail_event_log (Transact-SQL)
sysmail_mailattachments (Transact-SQL)
Altre risorse
Procedura: Creazione di un processo di SQL Server Agent per l'archiviazione di messaggi e log eventi di Posta elettronica database
Risoluzione dei problemi relativi a Posta elettronica database
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
14 aprile 2006 |
|