Share via


sysmail_delete_mailitems_sp (Transact-SQL)

Mis à jour : 14 avril 2006

Supprime définitivement des messages électroniques des tables internes de la messagerie de base de données.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sysmail_delete_mailitems_sp  [ [ @sent_before = ] 'sent_before' ]
    [ , [ @sent_status = ] 'sent_status' ]

Arguments

  • [ @sent_before= ] 'sent_before'
    Supprime les messages électroniques antérieurs à la date et l'heure spécifiées par l'argument sent_before. sent_before est de type datetime avec NULL comme valeur par défaut. La valeur NULL correspond à toutes les dates.
  • [ @sent_status= ] 'sent_status'
    Supprime les messages électroniques du type spécifié par le paramètre sent_status. sent_status est de type varchar(8) sans valeur par défaut. Les entrées valides sont sent, unsent, retrying et failed. La valeur NULL correspond à tous les états.

Notes

Les messages de la messagerie de base de données et leurs pièces jointes sont stockés dans la base de données msdb. Les messages doivent être supprimés périodiquement pour éviter que msdb ne devienne trop volumineuse et pour respecter la politique de rétention de documents de votre entreprise. Utilisez la procédure stockée sysmail_delete_mailitems_sp pour supprimer définitivement des messages électroniques des tables de la messagerie de base de données. Un argument facultatif vous permet de supprimer uniquement les messages les plus anciens en fournissant une date et une heure. Les messages antérieurs à cet argument sont alors supprimés. Un autre argument facultatif vous permet de supprimer uniquement un certain type de message électronique, spécifié par l'argument sent_status. À compter de SQL Server 2005 Service Pack 1, vous devez fournir un argument pour @sent_before ou @sent_status. Ces deux arguments ne peuvent pas avoir la valeur NULL.

La suppression d'un message entraîne également la suppression des pièces jointes qui sont associées à ce message. La suppression d'un message n'entraîne pas la suppression des entrées correspondantes dans le journal sysmail_event_log. Utilisez la procédure sysmail_delete_log_sp pour supprimer des éléments du journal.

Autorisations

Par défaut, les membres du rôle serveur fixe sysadmin et du rôle DatabaseMailUserRole sont autorisés à exécuter cette procédure stockée. Les membres du rôle serveur fixe sysadmin peuvent exécuter cette procédure pour supprimer des messages envoyés par n'importe quel utilisateur. Les membres du rôle DatabaseMailUserRole peuvent uniquement supprimer les messages envoyés par cet utilisateur.

Valeurs du code de retour

0 (succès) ou 1 (échec)

Exemples

A. Suppression de tous les messages électroniques

L'exemple suivant supprime tous les messages électroniques du système de la messagerie de base de données.

DECLARE @GETDATE datetime
SET @GETDATE = GETDATE()
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp  @sent_before = @GETDATE;
GO

B. Suppression des messages électroniques les plus anciens

L'exemple suivant supprime les messages électroniques du journal de la messagerie de base de données qui sont antérieurs au October 9, 2005.

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp 
    @sent_before = 'October 9, 2005' ;
GO

C. Suppression d'un certain type de message électronique

L'exemple suivant supprime tous les messages électroniques qui ont échoué du système de la messagerie de base de données.

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp 
    @sent_status = 'failed' ;
GO

Voir aussi

Référence

sysmail_allitems (Transact-SQL)
sysmail_event_log (Transact-SQL)
sysmail_mailattachments (Transact-SQL)

Autres ressources

Procédure : créer un travail d'Agent SQL Server pour archiver les messages et les journaux d'événements de la messagerie de base de données
Dépannage de la messagerie de base de données

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

14 avril 2006

Nouveau contenu :
  • Ajout de la nécessité de spécifier l'un des arguments imposée par le Service Pack 1.