sysmail_delete_log_sp (Transact-SQL)

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

适用范围:SQL Server(SQL Server 2008 到当前版本)。

主题链接图标 Transact-SQL 语法约定

语法

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

参数

  • [ @logged_before = ] 'logged_before'
    删除 logged_before 参数指定的日期和时间之前的项。 logged_before 的数据类型 datetime,默认值为 NULL。 NULL 指示所有日期。

  • [ @event_type = ] 'event_type'
    删除作为 event_type 指定的类型的日志项。 event_type 的数据类型为 varchar(15),无默认值。 有效项为 successwarningerrorinformational。 NULL 指示所有事件类型。

返回代码值

0(成功)或 1(失败)

注释

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

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

权限

只有 sysadmin 固定服务器角色的成员才能访问此过程。

示例

A.删除所有事件

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

EXECUTE msdb.dbo.sysmail_delete_log_sp ;
GO

B.删除最早的事件

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

EXECUTE msdb.dbo.sysmail_delete_log_sp
    @logged_before = 'October 9, 2005' ;
GO

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

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

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

请参阅

参考

sysmail_event_log (Transact-SQL)

sysmail_delete_mailitems_sp (Transact-SQL)

概念

创建 SQL Server 代理作业以存档数据库邮件和事件日志