Поделиться через


sysmail_delete_log_sp (Transact-SQL)

Область применения: SQL Server

Удаляет события из журнала компонента Database Mail. Удаляются либо все события, либо только события, удовлетворяющие критериям даты или типа.

Соглашения о синтаксисе 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) без значения по умолчанию. Допустимые записи:

  • success
  • warning
  • error
  • informational

NULL соответствует всем типам событий.

Значения кода возврата

0 (успешно) или 1 (сбой).

Замечания

Используйте хранимую sysmail_delete_log_sp процедуру для окончательного удаления записей из журнала Database Mail. Необязательный аргумент позволяет удалять записи определенной давности. Из этого следует, что удаляются события, созданные ранее даты, заданной в аргументе. Необязательный аргумент позволяет удалять только события определенного типа, указанные в качестве аргумента @event_type .

Удаление записей в журнале Database Mail не удаляет записи электронной почты из таблиц Database Mail. Используйте sysmail_delete_mailitems_sp для удаления электронной почты из таблиц Database Mail.

Разрешения

Эта хранимая процедура принадлежит роли db_owner . Вы можете предоставить EXECUTE разрешения для любого пользователя, но эти разрешения могут быть переопределены во время обновления SQL Server.

Примеры

А. Удаление всех событий

В следующем примере из журнала компонента Database Mail удаляются все события.

EXEC msdb.dbo.sysmail_delete_log_sp;
GO

B. Удаление старейших событий

В следующем примере удаляются события в журнале Database Mail, которые старше 9 октября 2022 г.

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

C. Удаление всех событий определенного типа

В следующем примере из журнала компонента Database Mail удаляются все сообщения «success».

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