2011-01-26 21 views
5

मैं sp_send_dbmail का उपयोग करके एक ईमेल भेजने की कोशिश कर रहा हूं। मुझे इसे एक संलग्नक के रूप में एक प्रश्न भेजने के लिए और ईमेल के शरीर के हिस्से के रूप में एक और भेजने की आवश्यकता है। समस्या यह है कि sp_send_dbmail में केवल एक @query पैरामीटर है, और मैं किसी अन्य को जोड़ने का कोई तरीका नहीं देख सकता।एकाधिक प्रश्न भेजने के लिए मैं sp_send_dbmail का उपयोग कैसे कर सकता हूं?

क्या कोई दूसरा तरीका है) एक दूसरी क्वेरी जोड़ें (इसके साथ जुड़े सभी पैरामीटर के साथ) या बी) क्वेरी को एक चर में निष्पादित करें और फिर इसे मेरे ईमेल के बॉडी में जोड़ें?

मैं एसक्यूएल सर्वर 2005

TIA उपयोग कर रहा हूँ!

उत्तर

5

संलग्नक के लिए संग्रहीत प्रक्रिया msdb.dbo.sp_send_dbmail के @query पैरामीटर का उपयोग करें और @body पैरामीटर का उपयोग उस चर के साथ करें जिसमें अन्य क्वेरी का परिणाम शामिल है।

नीचे दिया गया उदाहरण कोड SQL सर्वर जॉब चरण इतिहास से एक स्ट्रिंग बनाता है जिसमें संग्रहीत प्रक्रिया msdb.dbo.sp_send_dbmail का उपयोग कर ईमेल भेजने के लिए उपयोग किए गए HTML तालिका तत्व शामिल हैं। आप इसे अपने उद्देश्यों के लिए अनुकूलित करने में सक्षम होना चाहिए।

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 
संबंधित मुद्दे

 संबंधित मुद्दे