Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर (T-SQL) में HTML तालिका के रूप में ईमेल क्वेरी परिणाम

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 कोड प्राप्त होगा।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में ग्रुप बाय, होने और कहां क्लॉज का निष्पादन क्रम?

  2. SQL सर्वर में महीने का पहला दिन प्राप्त करने के 3 तरीके

  3. किसी दृश्य में प्रयुक्त उपनाम का वास्तविक स्तंभ नाम ज्ञात कीजिए?

  4. कई संग्रहीत कार्यविधियों के परिणाम UNION

  5. SQL सर्वर में ऑब्जेक्ट का नाम उसके ऑब्जेक्ट_आईडी से प्राप्त करने के लिए OBJECT_NAME() का उपयोग करें