sysmail_delete_mailitems_sp (T-SQL)
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:
sent
unsent
retrying
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 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.
EXEC 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.
EXEC msdb.dbo.sysmail_delete_mailitems_sp
@sent_status = 'failed';
GO
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk