Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Exclui permanentemente mensagens de email das tabelas internas do Database Mail.
Transact-SQL convenções de sintaxe
Sintaxe
sysmail_delete_mailitems_sp [ [ @sent_before = ] 'sent_before' ]
[ , [ @sent_status = ] 'sent_status' ]
[ ; ]
Argumentos
@sent_before [ = ] «sent_before»
Exclui e-mails até a data e hora fornecidas como argumento @sent_before .
@sent_before é datetime com NULL como padrão.
NULL indica todas as datas.
@sent_status [ = ] «sent_status»
Exclui e-mails do tipo especificado por @sent_status. @sent_status é varchar(8) sem padrão. As inscrições válidas são:
sentunsentretrying-
failed.
NULL indica todos os status.
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Observações
As mensagens do Database Mail e seus anexos são armazenados no msdb banco de dados. As mensagens devem ser excluídas periodicamente para evitar msdb que cresçam mais do que o esperado e para estar em conformidade com o programa de retenção de documentos da sua organização. Use o sysmail_delete_mailitems_sp procedimento armazenado para excluir permanentemente mensagens de email das tabelas do Database Mail. Um argumento opcional permite que você exclua apenas e-mails mais antigos, fornecendo uma data e hora. E-mails mais antigos do que esse argumento serão excluídos. Outro argumento opcional permite excluir apenas e-mails de um determinado tipo, especificado como o argumento @sent_status . Você deve fornecer um argumento para @sent_before ou @sent_status. Para excluir todas as mensagens, use @sent_before = GETDATE();.
A exclusão de e-mails também exclui anexos relacionados a essas mensagens. A exclusão de e-mails não exclui as entradas correspondentes no sysmail_event_log. Use sysmail_delete_log_sp para excluir itens do log.
Permissões
Por padrão, esse procedimento armazenado é concedido para execução a membros fora da função de servidor fixa sysadmin e DatabaseMailUserRole. Os membros da função de servidor fixa sysadmin podem executar este procedimento para excluir e-mails enviados por todos os usuários. Os membros de DatabaseMailUserRole só podem excluir emails enviados por esse usuário.
Exemplos
Um. Excluir todos os e-mails
O exemplo a seguir exclui todos os emails no sistema Database Mail.
DECLARE @GETDATE AS DATETIME;
SET @GETDATE = GETDATE();
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_before = @GETDATE;
GO
B. Excluir os e-mails mais antigos
O exemplo a seguir exclui emails no log do Database Mail anteriores a 9 de outubro de 2022.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_before = 'October 9, 2022';
GO
C. Excluir todos os e-mails de um determinado tipo
O exemplo a seguir exclui todos os emails com falha no log do Database Mail.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_status = 'failed';
GO