Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Menghapus pesan email secara permanen dari tabel internal Email Database.
Sintaks
sysmail_delete_mailitems_sp [ [ @sent_before = ] 'sent_before' ]
[ , [ @sent_status = ] 'sent_status' ]
[ ; ]
Argumen
[ @sent_before = ] 'sent_before'
Menghapus email hingga tanggal dan waktu yang disediakan sebagai argumen @sent_before .
@sent_before adalah datetime dengan NULL sebagai default.
NULL menunjukkan semua tanggal.
[ @sent_status = ] 'sent_status'
Menghapus email tipe yang ditentukan oleh @sent_status. @sent_status adalah varchar(8) tanpa default. Entri yang valid adalah:
sentunsentretrying-
failed.
NULL menunjukkan semua status.
Mengembalikan nilai kode
0 (berhasil) atau 1 (kegagalan).
Keterangan
Pesan Email Database dan lampirannya disimpan dalam msdb database. Pesan harus dihapus secara berkala untuk mencegah msdb tumbuh lebih besar dari yang diharapkan dan mematuhi program retensi dokumen organisasi Anda. Gunakan prosedur tersimpan sysmail_delete_mailitems_sp untuk menghapus pesan email secara permanen dari tabel Email Database. Argumen opsional memungkinkan Anda untuk menghapus hanya email yang lebih lama dengan memberikan tanggal dan waktu. Email yang lebih lama dari argumen tersebut akan dihapus. Argumen opsional lainnya memungkinkan Anda hanya menghapus email dari jenis tertentu, yang ditentukan sebagai argumen @sent_status . Anda harus memberikan argumen baik untuk @sent_before atau @sent_status. Untuk menghapus semua pesan, gunakan @sent_before = GETDATE();.
Menghapus email juga menghapus lampiran yang terkait dengan pesan tersebut. Menghapus email tidak menghapus entri terkait di sysmail_event_log. Gunakan sysmail_delete_log_sp untuk menghapus item dari log.
Izin
Secara default, prosedur tersimpan ini diberikan untuk eksekusi kepada anggota dari peran server tetap sysadmin dan DatabaseMailUserRole. Anggota peran server tetap sysadmin dapat menjalankan prosedur ini untuk menghapus email yang dikirim oleh semua pengguna. Anggota DatabaseMailUserRole hanya dapat menghapus email yang dikirim oleh pengguna tersebut.
Contoh
J. Hapus semua email
Contoh berikut menghapus semua email dalam sistem Email Database.
DECLARE @GETDATE AS DATETIME;
SET @GETDATE = GETDATE();
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp
@sent_before = @GETDATE;
GO
B. Menghapus email terlama
Contoh berikut menghapus email di log Email Database yang lebih lama dari 9 Oktober 2022.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_before = 'October 9, 2022';
GO
C. Menghapus semua email dengan tipe tertentu
Contoh berikut menghapus semua email yang gagal di log Email Database.
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_status = 'failed';
GO