

# 删除消息
<a name="SQLServer.DBMail.Delete"></a>

您可以使用 `rds_sysmail_delete_mailitems_sp` 存储过程删除消息。

**注意**  
当 DBMail 历史数据大小达到 1 GB 时，RDS 会自动删除邮件表项目，且保留期至少为 24 小时。  
如果您希望延长邮件项目的保留时间，可以将其存档。有关详细信息，请参阅 Microsoft 文档中的[创建 SQL Server Agent 作业以对数据库邮件消息和事件日志进行存档](https://docs.microsoft.com/en-us/sql/relational-databases/database-mail/create-a-sql-server-agent-job-to-archive-database-mail-messages-and-event-logs)。

**如欲删除所有电子邮件**
+ 使用以下 SQL 语句。

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

**如欲删除具有特定状态的所有电子邮件**
+ 使用以下 SQL 语句删除所有失败的消息。

  ```
  DECLARE @GETDATE datetime
  SET @GETDATE = GETDATE();
  EXECUTE msdb.dbo.rds_sysmail_delete_mailitems_sp @sent_status = 'failed';
  GO
  ```