次の方法で共有


sysmail_delete_log_sp (Transact-SQL)

データベース メール ログからイベントを削除します。ログ内のすべてのイベントを削除するか、日付または種類の条件に該当するイベントを削除することができます。

トピック リンク アイコン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) で、既定値はありません。有効なエントリは、successwarningerror、および informational です。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