Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Mengirim Hasil Kueri Email sebagai Lampiran di SQL Server (T-SQL)

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengganti Nama Nama Tabel di SQL Server

  2. Mendefinisikan hubungan satu-ke-satu di SQL Server

  3. SQL Server mengonversi varbinary ke string

  4. Dapatkan Daftar Akun Email Database di SQL Server (T-SQL)

  5. Konfigurasikan Lingkungan StartUp di SQL Server Management Studio (SSMS) - Tutorial SQL Server / TSQL Bagian 7