次の方法で共有


sysmail_delete_mailitems_sp (Transact-SQL)

更新 : 2006 年 4 月 14 日

データベース メールの内部テーブルから電子メール メッセージを完全に削除します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sysmail_delete_mailitems_sp  [ [ @sent_before = ] 'sent_before' ]
    [ , [ @sent_status = ] 'sent_status' ]

引数

  • [ @sent_before= ] 'sent_before'
    sent_before 引数で指定した日時より前の電子メールを削除します。sent_before のデータ型は datetime で、既定値は NULL です。NULL はすべての日付を表します。
  • [ @sent_status= ] 'sent_status'
    sent_status で指定した種類の電子メールを削除します。sent_status のデータ型は varchar(8) で、既定値はありません。有効な入力値は、sentunsentretrying、および failed です。NULL はすべての状態を表します。

リターン コードの値

0 (成功) または 1 (失敗)

解説

データベース メールのメッセージとその添付ファイルは、msdb データベースに格納されます。これらのメッセージは、msdb が予定外に大きくならないようにするため、また、組織のドキュメント保管計画に従って、定期的に削除することをお勧めします。sysmail_delete_mailitems_sp ストアド プロシージャは、データベース メールのテーブルから電子メール メッセージを完全に削除するときに使用します。日時を指定する引数を使用すると、古い電子メールだけを削除できます。この場合、引数で指定した日時より前の電子メールが削除されます。また、種類を指定する引数 sent_status を使用すると、特定の種類の電子メールだけを削除できます。SQL Server 2005 Service Pack 1 以降では、@sent_before または @sent_status のいずれかに引数を指定する必要があります。両方の引数に NULL を指定することはできません。

電子メールを削除すると、そのメッセージに関係する添付ファイルも削除されます。電子メールを削除しても、sysmail_event_log 内の対応するエントリは削除されません。ログからアイテムを削除するには、sysmail_delete_log_sp を使用します。

権限

既定では、このストアド プロシージャの実行権限は sysadmin 固定サーバー ロールと DatabaseMailUserRole のメンバに与えられています。sysadmin 固定サーバー ロールのメンバは、このプロシージャを実行すると、すべてのユーザーから送信された電子メールを削除できます。DatabaseMailUserRole のメンバは、そのユーザーが送信した電子メールだけを削除できます。

A. すべての電子メールを削除する

次の例では、データベース メール システムにあるすべての電子メールを削除します。

DECLARE @GETDATE datetime
SET @GETDATE = GETDATE()
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp  @sent_before = @GETDATE;
GO

B. 古い電子メールを削除する

次の例では、データベース メール ログにある電子メールのうち、October 9, 2005 より前の電子メールを削除します。

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp 
    @sent_before = 'October 9, 2005' ;
GO

C. 特定の種類のすべての電子メールを削除する

次の例では、データベース メール ログにある失敗した電子メールをすべて削除します。

EXECUTE msdb.dbo.sysmail_delete_mailitems_sp 
    @sent_status = 'failed' ;
GO

参照

関連項目

sysmail_allitems (Transact-SQL)
sysmail_event_log (Transact-SQL)
sysmail_mailattachments (Transact-SQL)

その他の技術情報

データベース メール メッセージやイベント ログをアーカイブする SQL Server エージェント ジョブを作成する方法
データベース メールのトラブルシューティング

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

新しい内容 :
  • いずれかの引数を指定する必要があるという Service Pack 1 の要件を追加しました。