@query
का उपयोग करें संग्रहीत कार्यविधि का पैरामीटर msdb.dbo.sp_send_dbmail
अटैचमेंट के लिए और @body
. का उपयोग करें एक चर के साथ पैरामीटर जिसमें अन्य क्वेरी का परिणाम होता है।
नीचे दिया गया उदाहरण कोड SQL सर्वर कार्य चरण इतिहास से एक स्ट्रिंग बनाता है जिसमें HTML तालिका तत्व होते हैं जिनका उपयोग संग्रहीत प्रक्रिया msdb.dbo.sp_send_dbmail
का उपयोग करके एक ईमेल भेजने के लिए किया जाता है। . आपको इसे अपने उद्देश्यों के लिए अनुकूलित करने में सक्षम होना चाहिए।
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