Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak używać sp_send_dbmail do wysyłania wielu zapytań?

Użyj @query parametr procedury składowanej msdb.dbo.sp_send_dbmail dla załącznika i użyj @body parametr ze zmienną zawierającą wynik innego zapytania.

Poniższy przykładowy kod tworzy ciąg z historii kroków zadania programu SQL Server, który zawiera elementy tabeli HTML używane do wysyłania wiadomości e-mail przy użyciu procedury składowanej msdb.dbo.sp_send_dbmail . Powinieneś być w stanie dostosować go do swoich celów.

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. Sortuj według liczby nie sortuje poprawnie - SQL (MS Access 2007)

  2. Czy możemy przywrócić pierwotny stan po użyciu polecenia DBCC CHECKIDENT do ponownego uruchomienia liczby kolumn tożsamości?

  3. Dziwność kodu powrotu procedury składowanej SQL Server

  4. SQL:Zastąp część kolumny w wielu wierszach na podstawie drugiej tabeli

  5. sql - uzyskanie liczby pracowników w każdej klasie w określonym formacie