Di SQL Server, Anda dapat mengirim email menggunakan sp_send_dbmail
prosedur tersimpan di msdb basis data.
Salah satu pilihan yang Anda miliki saat menjalankan prosedur ini adalah apakah akan menyertakan hasil kueri atau tidak.
Pilihan lain yang Anda miliki adalah mengirim hasil tersebut dalam lampiran atau tidak.
Contoh
Untuk mengirim email hasil kueri, gunakan @query
argumen.
Untuk melampirkan hasil tersebut sebagai lampiran, gunakan @attach_query_result_as_file
argumen. Ini menerima sedikit nilai, dengan default adalah 0
(tanpa lampiran).
Untuk mengirim hasil dalam lampiran, cukup berikan 1
untuk argumen ini.
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@attach_query_result_as_file = 1,
@subject = 'Query results as discussed';
Contoh ini mengirim email dengan hasil terlampir sebagai .txt mengajukan. Nama dibuat secara otomatis oleh Database Mail.
Secara default, ukuran file maksimum untuk lampiran adalah 1 MB per file, tetapi Anda dapat mengubahnya dengan sysmail_configure_sp
prosedur tersimpan.
Berikan Nama untuk Lampiran
Anda juga memiliki pilihan untuk memberikan nama Anda sendiri untuk lampiran. Anda dapat melakukannya dengan @query_attachment_filename
argumen.
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'Artists.csv',
@subject = 'Query results as discussed';
Opsi Lainnya
Berikut contoh lain yang memperluas yang sebelumnya. Di sini, saya telah menyertakan sejumlah opsi yang mungkin berguna bagi Anda saat mengirim hasil kueri sebagai lampiran email.
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'Artists.csv',
@query_result_header = 1,
@query_result_width = 256,
@query_result_separator = ',',
@exclude_query_output = 1,
@append_query_error = 1,
@query_no_truncate = 0,
@query_result_no_padding = 1,
@subject = 'Query results as discussed';
Beberapa di antaranya disetel ke nilai default dan beberapa tidak. Misalnya, saya telah mengubah @query_result_no_padding
ke 1
untuk menghapus padding dari dalam kolom. Saya juga menggunakan @query_result_separator
untuk mengubah pemisah dari spasi default, menjadi koma.
sp_send_dbmail
prosedur menerima lebih banyak argumen daripada yang saya cantumkan di sini. Lihat dokumentasi Microsoft untuk daftar lengkap argumen dan deskripsinya.
Mengonfigurasi Email Basis Data
Contoh di halaman ini mengasumsikan bahwa Anda telah mengaktifkan dan mengonfigurasi Database Mail.
Jika Anda tidak memiliki Database Mail yang dikonfigurasi, lihat Cara Mengirim Email dari SQL Server. Artikel tersebut memberikan contoh untuk mengaktifkan dan mengonfigurasi Database Mail dengan T-SQL.