sysmail_delete_log_sp (Transact-SQL)
適用対象: SQL サーバー
データベース メール ログからイベントを削除します。 ログ内のすべてのイベント、または日付または種類の条件を満たすイベントを削除します。
構文
sysmail_delete_log_sp [ [ @logged_before = ] 'logged_before' ]
[ , [ @event_type = ] 'event_type' ]
[ ; ]
引数
[ @logged_before = ] 'logged_before'
@logged_before引数で指定された日付と時刻までのエントリを削除します。 @logged_before は既定で NULL datetime です。 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