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

Hasil Query Email sebagai Tabel HTML di SQL Server (T-SQL)

Database Mail SQL Server memiliki prosedur tersimpan yang disebut sp_send_dbmail yang dapat Anda gunakan untuk mengirim email dari SQL Server.

Anda dapat menggunakan prosedur tersimpan ini untuk mengirim hasil kueri yang diformat ke dalam tabel HTML.

Contoh

Berikut ini contoh untuk didemonstrasikan.

DECLARE @body_content nvarchar(max);
SET @body_content = N'
<style>
table.GeneratedTable {
  width: 100%;
  background-color: #ffffff;
  border-collapse: collapse;
  border-width: 2px;
  border-color: #ffcc00;
  border-style: solid;
  color: #000000;
}

table.GeneratedTable td, table.GeneratedTable th {
  border-width: 2px;
  border-color: #ffcc00;
  border-style: solid;
  padding: 3px;
}

table.GeneratedTable thead {
  background-color: #ffcc00;
}
</style>

<table class="GeneratedTable">
  <thead>
    <tr>
      <th>ArtistId</th>
      <th>ArtistName</th>
      <th>ActiveFrom</th>
    </tr>
  </thead>
  <tbody>' +
CAST(
        (SELECT td = ArtistId, '',
                td = ArtistName, '',
                td = ActiveFrom, ''
        FROM Music.dbo.Artists
        FOR XML PATH('tr'), TYPE   
        ) AS nvarchar(max)
    ) +
  N'</tbody>
</table>';

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = @body_content,
    @body_format = 'HTML',
    @subject = 'As discussed';

Dalam hal ini, saya mendeklarasikan sebuah variabel bernama @body_content dan masukkan semua kode HTML ke dalamnya. Saya juga menambahkan beberapa gaya menggunakan CSS, sehingga tabel memiliki batas yang terlihat, header, dll. Variabel ini digunakan sebagai nilai @body argumen saat mengirim email dengan sp_send_dbmail prosedur.

Jika Anda tidak memerlukan gaya apa pun untuk diterapkan, cukup hapus <style></style> tag dan segala sesuatu di antaranya. Dalam hal ini, Anda juga dapat menghapus class="GeneratedTable" bit dari tabel yang sebenarnya.

Jika Anda ingin mengubah gaya, lihat generator tabel saya di Quackit. Anda dapat menggunakannya untuk menghasilkan gaya tabel Anda, lalu Anda dapat menyalin/menempelkan gaya tersebut ke dalam kode yang masuk ke email Anda.

Kode T-SQL diteruskan ke CAST() fungsi adalah yang mengembalikan hasil kueri, masing-masing di baris tabelnya sendiri (<tr> elemen), dan setiap kolom di dalam <td> .nya sendiri elemen.

Pastikan untuk menyertakan @body_format = 'HTML' . Inilah yang mengirim email dalam format HTML. Jika Anda menghilangkan ini (atau jika Anda menyetelnya ke TEXT ), penerima akan menerima kode HTML mentah, bukan kode yang diberikan.


  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 Mengatur Susunan Kolom di SQL Server (T-SQL)

  2. mengisolasi sub-string dalam string sebelum simbol di SQL Server 2008

  3. Cara menggunakan Template di SQL Server Management Studio (SSMS) - Tutorial SQL Server / TSQL Bagian 16

  4. Cara Menggunakan FILEPROPERTY() di SQL Server

  5. Apa itu file MDF?