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

Bagaimana saya bisa menggunakan sp_send_dbmail untuk mengirim banyak pertanyaan?

Gunakan @query parameter prosedur tersimpan msdb.dbo.sp_send_dbmail untuk lampiran dan gunakan @body parameter dengan variabel yang berisi hasil kueri lainnya.

Contoh kode di bawah ini membuat string dari riwayat langkah pekerjaan SQL Server yang berisi elemen tabel HTML yang digunakan untuk mengirim email menggunakan prosedur tersimpan msdb.dbo.sp_send_dbmail . Anda harus dapat menyesuaikannya untuk tujuan Anda.

DECLARE @cat        varchar(MAX),
        @email_id   int


SELECT @cat = COALESCE(@cat + '', '')
                + '<tr><td>'
                + j.[name] + '</td><td>'
                + CAST(js.step_id AS varchar) + '</td><td>'
                + js.step_name + '</td><td>'
                + CONVERT(char(23), jsl.date_created, 121) + '</td><td>'
                + jsl.[log] + '</td></tr>'
FROM    msdb.dbo.sysjobstepslogs jsl
        JOIN msdb.dbo.sysjobsteps js ON jsl.step_uid = js.step_uid
        JOIN msdb.dbo.sysjobs j ON js.job_id = j.job_id


SET @cat = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<style type="text/css">
    td {
        border: 1pt dotted #ddd;
    }

    #log_text {
        width: 20em;
    }
</style>
</head>
<body>
<table>
<colgroup>
    <col />
    <col />
    <col />
    <col />
    <col id="log_text" />
</colgroup>
<thead>
<tr>
<th>Job</th><th>Step</th><th>Step name</th><th>Log created</th><th>Log text</th></tr>
</thead>
<tbody>
        ' + @cat + '
</tbody>
</table>
</body>
</html>'


EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'SQLServerDatabaseMailProfile',
    @recipients = '[email protected]',
    @subject = 'SQL Server Database Mail · Job step logs',
    @body = @cat,
    @body_format = 'HTML',
    @mailitem_id = @email_id OUTPUT



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. temukan lokasi terdekat di ms-sql

  2. apa pengaturan registri untuk mengaktifkan TCP pada SQL Server 2005 dan 2008?

  3. LEFT() vs SET TEXTSIZE di SQL Server:Apa Bedanya?

  4. Dapatkan tanggal mulai minggu dan tanggal akhir minggu dari nomor minggu

  5. Apa cara yang tepat untuk mengisi DropDownList dari database?