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

Cara Mengirim Email Hasil Query di SQL Server (T-SQL)

SQL Server menyediakan cara mudah untuk mengirim email hasil kueri ke diri Anda sendiri (atau ke orang lain).

Untuk mengirim email dengan T-SQL, Anda perlu menggunakan sp_send_dbmail prosedur tersimpan di msdb basis data. Prosedur ini menerima banyak argumen, salah satunya adalah @query argumen. Itulah argumen yang melampirkan hasil kueri Anda ke email.

Contoh

Berikut adalah contoh dasar yang menggunakan argumen minimum:

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',
    @subject = 'Query results as discussed';

Secara default, hasil kueri dicantumkan di badan email. Anda juga dapat mengirimkan hasilnya sebagai lampiran.

Hapus Padding

Jika hasil Anda diformat dengan terlalu banyak pengisi di dalam kolom, Anda dapat menggunakan @query_result_no_padding = 1 untuk menghilangkan bantalan 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',
    @query_result_no_padding = 1,
    @subject = 'Query results as discussed';

Tambahkan Hasil Kueri sebagai Lampiran

Anda dapat menggunakan @attach_query_result_as_file argumen untuk menambahkan hasil kueri sebagai lampiran. 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,
    @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';

Dalam contoh ini saya telah menambahkan beberapa argumen lagi.

@query_attachment_filename argumen memungkinkan Anda untuk menentukan nama file Anda sendiri (jika Anda tidak memberikan argumen ini, Database Mail akan membuatnya).

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 itu memberikan contoh T-SQL untuk mengaktifkan dan mengonfigurasi Database Mail. Tidak butuh waktu lama.


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

  2. Apa artinya =*?

  3. Operasi CRUD dengan ASP.NET Core MVC, Entity Framework Core, dan SQL Server

  4. Apa arti dari SELECT ... FOR XML PATH(' '),1,1)?

  5. Bagaimana cara mengimpor file .bak SQL Server ke MySQL?