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

SQL सर्वर (T-SQL) में अनुलग्नक के रूप में क्वेरी परिणाम ईमेल कैसे करें

SQL सर्वर में, आप sp_send_dbmail . का उपयोग करके ईमेल भेज सकते हैं msdb . में संग्रहीत कार्यविधि डेटाबेस।

इस प्रक्रिया को निष्पादित करते समय आपके पास एक विकल्प यह है कि किसी क्वेरी के परिणामों को शामिल किया जाए या नहीं।

आपके पास एक और विकल्प है कि उन परिणामों को अनुलग्नक में भेजना है या नहीं।

उदाहरण

किसी क्वेरी के परिणाम ईमेल करने के लिए, @query . का उपयोग करें तर्क।

उन परिणामों को अनुलग्नक के रूप में संलग्न करने के लिए, @attach_query_result_as_file का उपयोग करें बहस। यह एक बिट . स्वीकार करता है मान, डिफ़ॉल्ट होने के साथ 0 (बिना अटैचमेंट के)।

अनुलग्नक में परिणाम भेजने के लिए, बस एक 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';

यह उदाहरण .txt . के रूप में संलग्न परिणामों के साथ एक ईमेल भेजता है फ़ाइल। नाम स्वचालित रूप से डेटाबेस मेल द्वारा उत्पन्न किया गया था।

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

अनुलग्नक के लिए एक नाम प्रदान करें

आपके पास अनुलग्नक के लिए अपना नाम प्रदान करने का विकल्प भी है। आप इसे @query_attachment_filename . के साथ कर सकते हैं बहस।

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,
    @query_attachment_filename = 'Artists.csv',
    @subject = 'Query results as discussed';

अधिक विकल्प

यहां एक और उदाहरण दिया गया है जो पिछले एक पर विस्तारित होता है। यहां, मैंने कई विकल्प शामिल किए हैं जो आपको ईमेल अटैचमेंट के रूप में क्वेरी परिणाम भेजते समय उपयोगी लग सकते हैं।

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,
    @query_attachment_filename = 'Artists.csv',
    @query_result_header = 1,
    @query_result_width = 256,
    @query_result_separator = ',',
    @exclude_query_output = 1,
    @append_query_error = 1,
    @query_no_truncate = 0,
    @query_result_no_padding = 1,
    @subject = 'Query results as discussed';

इनमें से कुछ अपने डिफ़ॉल्ट मान पर सेट हैं और कुछ नहीं हैं। उदाहरण के लिए, मैंने @query_result_no_padding . को बदल दिया है करने के लिए 1 कॉलम के भीतर से पैडिंग को हटाने के लिए। मैंने @query_result_separator . का भी इस्तेमाल किया है विभाजक को डिफ़ॉल्ट स्थान से अल्पविराम में बदलने के लिए।

sp_send_dbmail प्रक्रिया मेरे द्वारा यहां सूचीबद्ध की तुलना में अधिक तर्कों को स्वीकार करती है। तर्कों और उनके विवरणों की पूरी सूची के लिए Microsoft के दस्तावेज़ देखें।

डेटाबेस मेल को कॉन्फ़िगर करना

इस पृष्ठ के उदाहरण मानते हैं कि आपने डेटाबेस मेल को पहले ही सक्षम और कॉन्फ़िगर कर दिया है।

यदि आपके पास डेटाबेस मेल कॉन्फ़िगर नहीं है, तो SQL सर्वर से ईमेल कैसे भेजें देखें। वह लेख डेटाबेस मेल को टी-एसक्यूएल के साथ सक्षम और कॉन्फ़िगर करने के लिए उदाहरण प्रदान करता है।


  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 सर्वर डेटाबेस स्नैपशॉट -3

  2. टीएसक्यूएल पिवट मल्टीपल कॉलम्स

  3. जावा 1.7.0 के तहत चल रहे SQL-सर्वर (MSSQL-JDBC 3.0) में दिनांक कॉलम 2 दिन पहले प्राप्त किए गए थे

  4. संग्रहीत कार्यविधि क्या है और संग्रहीत कार्यविधि क्यों ?

  5. SQL सर्वर 2008:मैं उपयोगकर्ता नाम को विशेषाधिकार कैसे प्रदान करूं?