sysmail_delete_log_sp (Transact-SQL)

适用范围:SQL Server

从数据库邮件日志中删除事件。 删除日志中的所有事件或删除符合某一日期或类型条件的那些事件。

Transact-SQL 语法约定

语法

sysmail_delete_log_sp [ [ @logged_before = ] 'logged_before' ]
    [ , [ @event_type = ] 'event_type' ]
[ ; ]

参数

[ @logged_before = ] 'logged_before'

删除由@logged_before参数指定的日期和时间的条目。 @logged_before日期/时间,默认NULL为日期/时间NULL 指示所有日期。

[ @event_type = ] 'event_type'

删除指定为 @event_type的类型日志条目。 @event_type是 varchar(15),没有默认值。 有效条目包括:

  • success
  • warning
  • error
  • informational

NULL 指示所有事件类型。

返回代码值

0(成功)或 1(失败)。

注解

使用sysmail_delete_log_sp存储过程从数据库邮件日志中永久删除条目。 某个可选参数通过提供日期和时间,允许您仅删除较早的记录。 早于该参数的事件将被删除。 可选参数允许仅删除指定为 @event_type 参数的特定类型的事件。

删除数据库邮件日志中的条目不会从数据库邮件表中删除电子邮件条目。 使用sysmail_delete_mailitems_sp从数据库邮件表中删除电子邮件。

权限

此存储过程由 db_owner 角色拥有。 你可以为任何用户授予 EXECUTE 权限,但这些权限可能会在 SQL Server 升级期间被重写。

示例

A. 删除所有事件

以下示例删除数据库邮件日志中的所有事件。

EXEC msdb.dbo.sysmail_delete_log_sp;
GO

B. 删除最早的事件

以下示例删除 2022 年 10 月 9 日之前的数据库邮件日志中的事件。

EXEC msdb.dbo.sysmail_delete_log_sp
    @logged_before = 'October 9, 2022';
GO

°C 删除特定类型的所有事件

以下示例删除数据库邮件日志中的成功消息。

EXEC msdb.dbo.sysmail_delete_log_sp
    @event_type = 'success' ;
GO