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

SQL सर्वर (T-SQL) में अनुलग्नकों के साथ ईमेल भेजें

SQL सर्वर हमें अपने डेटाबेस मेल समाधान के माध्यम से ईमेल भेजने की क्षमता प्रदान करता है। इसमें संग्रहीत प्रक्रियाओं का एक समूह शामिल है जो कॉन्फ़िगरेशन और ईमेल भेजने की सुविधा प्रदान करता है।

ईमेल भेजने के लिए, sp_send_dbmail . का उपयोग करें संग्रहीत प्रक्रिया। यह प्रक्रिया वैकल्पिक तर्कों के एक समूह को स्वीकार करती है, जिनमें से एक आपको अनुलग्नक भेजने की अनुमति देता है।

दरअसल, दो तर्क हैं जो आपको अटैचमेंट भेजने में सक्षम बनाते हैं। आपके द्वारा उपयोग किया जाने वाला संदर्भ संदर्भ पर निर्भर करेगा।

वे हैं:

  • @file_attachments - आपको ईमेल में संलग्न करने के लिए एक फ़ाइल निर्दिष्ट करने की अनुमति देता है।
  • @attach_query_result_as_file - यह केवल तभी लागू होता है जब आप @query . का भी उपयोग कर रहे हों किसी प्रश्न के परिणाम ईमेल करने के लिए।

नीचे दिए गए उदाहरण।

एक फ़ाइल संलग्न करें

@file_attachments तर्क आपको ईमेल में संलग्न करने के लिए एक फ़ाइल निर्दिष्ट करने की अनुमति देता है।

यहां एक उदाहरण दिया गया है:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'The attached file contains all required data.',
    @file_attachments = '/var/opt/mssql/bak/Nature.bak',
    @subject = 'File attached as discussed';

मान में फ़ाइल का पूर्ण पथ शामिल होना चाहिए।

डिफ़ॉल्ट रूप से, अधिकतम फ़ाइल आकार 1 एमबी प्रति फ़ाइल है, लेकिन आप इसे sysmail_configure_sp से बदल सकते हैं संग्रहीत प्रक्रिया।

एकाधिक फ़ाइलें संलग्न करें

आप प्रत्येक फ़ाइल नाम को सेमी-कोलन से अलग करके एकाधिक फ़ाइलें संलग्न कर सकते हैं:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'The attached files contain all required data.',
    @file_attachments = '/var/opt/mssql/bak/Nature.bak;/var/opt/mssql/bak/World.bak',
    @subject = 'Files attached as discussed';

जैसा कि उल्लेख किया गया है, फ़ाइल आकार सीमा प्रत्येक फ़ाइल पर लागू होती है। इसलिए यदि फ़ाइल आकार सीमा 1 एमबी है, तो इस उदाहरण में प्रत्येक फ़ाइल 1 एमबी तक हो सकती है (परिणामस्वरूप दोनों अनुलग्नकों के लिए कुल आकार 2 एमबी है)।

किसी प्रश्न के परिणाम संलग्न करें

आप किसी क्वेरी के परिणाम को ईमेल करने के लिए डेटाबेस मेल का भी उपयोग कर सकते हैं। यह @query . के साथ किया जाता है बहस। डिफ़ॉल्ट रूप से, परिणाम ईमेल के मुख्य भाग में सूचीबद्ध होते हैं, लेकिन आप चाहें तो उन्हें अनुलग्नक के रूप में जोड़ सकते हैं।

उन्हें अनुलग्नक के रूप में जोड़ने के लिए, @attach_query_result_as_file सेट करें 1 . के मान के साथ तर्क ।

अटैचमेंट के रूप में क्वेरी परिणाम भेजने का एक उदाहरण यहां दिया गया है:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'Potential candidates for an Admin job, perhaps?',
    @query = 'SELECT TOP(5) * FROM Artists;',
    @execute_query_database = 'Music',
    @attach_query_result_as_file = 1,
    @subject = 'Query results as discussed';

ईमेल में क्वेरी परिणाम भेजते समय आपके लिए काफी कुछ विकल्प उपलब्ध हैं।

उदाहरण के लिए, आप @query_attachment_filename . का उपयोग कर सकते हैं फ़ाइल नाम निर्दिष्ट करने के लिए (यदि निर्दिष्ट नहीं है, तो डेटाबेस मेल एक बना देगा)। आप @query_result_header . का भी उपयोग कर सकते हैं यह निर्दिष्ट करने के लिए तर्क कि हेडर क्वेरी में शामिल हैं या नहीं, और आप @query_result_no_padding का उपयोग कर सकते हैं परिणामों पर स्वचालित रूप से लागू होने वाली किसी भी पैडिंग को हटाने का तर्क।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस + विंडोज प्रमाणीकरण + उपयोगकर्ता नाम/पासवर्ड?

  2. MultiActiveResultSets=सही या एकाधिक कनेक्शन?

  3. एकाधिक तालिकाओं के लिए विदेशी कुंजी

  4. SQL सर्वर (T-SQL) में PATINDEX () फ़ंक्शन कैसे काम करता है

  5. डेटा प्रतिकृति का उद्देश्य क्या है?