SQL सर्वर के डेटाबेस मेल में एक संग्रहीत कार्यविधि होती है जिसे sp_send_dbmail
. कहा जाता है जिसका उपयोग आप SQL सर्वर से ईमेल भेजने के लिए कर सकते हैं।
HTML तालिका में स्वरूपित क्वेरी परिणाम भेजने के लिए आप इस संग्रहीत कार्यविधि का उपयोग कर सकते हैं।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
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';
इस मामले में, मैं @body_content
. नामक एक वैरिएबल घोषित करता हूं और इसमें सभी HTML कोड डाल दें। मैं सीएसएस का उपयोग करके कुछ शैलियों को भी जोड़ता हूं, ताकि तालिका में दृश्यमान सीमाएं, शीर्षलेख इत्यादि हों। इस चर का उपयोग @body
के मान के रूप में किया जाता है sp_send_dbmail
. के साथ ईमेल भेजते समय तर्क प्रक्रिया।
यदि आपको किसी शैली को लागू करने की आवश्यकता नहीं है, तो बस <style></style>
. हटा दें टैग और बीच में सब कुछ। इस मामले में, आप class="GeneratedTable"
. को भी हटा सकते हैं वास्तविक तालिका से थोड़ा सा।
यदि आप शैलियों को बदलना चाहते हैं, तो मेरे टेबल जनरेटर को क्वैकिट पर देखें। आप अपनी तालिका शैलियों को उत्पन्न करने के लिए इसका उपयोग कर सकते हैं, फिर आप उन शैलियों को उस कोड में कॉपी/पेस्ट कर सकते हैं जो आपके ईमेल में जाता है।
T-SQL कोड CAST()
को पास कर दिया गया है फ़ंक्शन वह है जो क्वेरी परिणाम देता है, प्रत्येक अपनी तालिका पंक्ति में (<tr>
तत्व), और प्रत्येक कॉलम अपने <td>
. के भीतर तत्व।
@body_format = 'HTML'
. शामिल करना सुनिश्चित करें . यह वही है जो ईमेल को HTML फॉर्मेट में भेजता है। यदि आप इसे छोड़ देते हैं (या यदि आप इसे TEXT
. पर सेट करते हैं ), प्राप्तकर्ता को प्रदान किए गए कोड के बजाय कच्चा HTML कोड प्राप्त होगा।