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

Kirim Email dengan Lampiran di SQL Server (T-SQL)

SQL Server memberi kami kemampuan untuk mengirim email melalui solusi Database Mail-nya. Ini termasuk banyak prosedur tersimpan yang memfasilitasi konfigurasi dan pengiriman email.

Untuk mengirim email, gunakan sp_send_dbmail prosedur tersimpan. Prosedur ini menerima banyak argumen opsional, salah satunya memungkinkan Anda mengirim lampiran.

Sebenarnya, ada dua argumen yang memungkinkan Anda mengirim lampiran. Yang Anda gunakan akan bergantung pada konteksnya.

Mereka adalah:

  • @file_attachments – Memungkinkan Anda menentukan file yang akan dilampirkan ke email.
  • @attach_query_result_as_file – Ini hanya berlaku jika Anda juga menggunakan @query untuk mengirim email hasil kueri.

Contoh di bawah.

Lampirkan File

@file_attachments argumen memungkinkan Anda untuk menentukan file yang akan dilampirkan ke email.

Ini contohnya:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'The attached file contains all required data.',
    @file_attachments = '/var/opt/mssql/bak/Nature.bak',
    @subject = 'File attached as discussed';

Nilai harus menyertakan jalur absolut ke file.

Secara default, ukuran file maksimum adalah 1 MB per file, tetapi Anda dapat mengubahnya dengan sysmail_configure_sp prosedur tersimpan.

Lampirkan Beberapa File

Anda dapat melampirkan banyak file dengan memisahkan setiap nama file dengan titik koma:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'The attached files contain all required data.',
    @file_attachments = '/var/opt/mssql/bak/Nature.bak;/var/opt/mssql/bak/World.bak',
    @subject = 'Files attached as discussed';

Seperti disebutkan, batas ukuran file berlaku untuk setiap file. Jadi jika batas ukuran file adalah 1 MB, setiap file dalam contoh ini dapat mencapai hingga 1 MB (menghasilkan ukuran total 2 MB untuk gabungan kedua lampiran).

Lampirkan Hasil Kueri

Anda juga dapat menggunakan Database Mail untuk mengirim email hasil kueri. Ini dilakukan dengan @query argumen. Secara default, hasilnya tercantum di badan email, tetapi Anda dapat menambahkannya sebagai lampiran jika diinginkan.

Untuk menambahkannya sebagai lampiran, setel @attach_query_result_as_file argumen dengan nilai 1 .

Berikut ini contoh pengiriman hasil kueri sebagai lampiran:

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';

Ada beberapa opsi yang tersedia untuk Anda saat mengirim hasil kueri dalam email.

Misalnya, Anda dapat menggunakan @query_attachment_filename untuk menentukan nama file (jika tidak ditentukan, Database Mail akan membuatnya). Anda juga dapat menggunakan @query_result_header argumen untuk menentukan apakah header disertakan dalam kueri atau tidak, dan Anda dapat menggunakan @query_result_no_padding argumen untuk menghapus padding apa pun yang secara otomatis diterapkan ke hasil.


  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 Memperbarui Statistik SQL Server untuk Tabel Besar

  2. Cara Memigrasi Database SQL Server ke Database Azure SQL

  3. SQL Server - gabung dalam saat memperbarui

  4. Apa sebenarnya yang dimaksud dengan indeks Clustered dan Non-Clustered?

  5. Apa itu PROFIL STATISTIK di SQL Server?