2009-11-23 5 views
5

मैं अपने SQL Server 2008 मशीन पर Trigger से एक ईमेल भेजना चाहता हूं। ईमेल का डेटा, मूल रूप से, कुछ ट्रिगर जानकारी होगी।क्या एक SQL सर्वर ट्रिगर मुझे एक ईमेल भेज सकता है?

क्या कोई इसे करने के तरीके पर कुछ सरल/नमूना कोड प्रदान कर सकता है, कृपया? जैसे सिस्टम संग्रहीत प्रक्रिया क्या कहा जाता है? आदि

मैंने कोई भी SQL मेल और सामान सेट अप नहीं किया है, इसलिए मुझे लगता है कि यह निर्मित है और मैं इसका लाभ उठा सकता हूं। लेकिन बस यह सुनिश्चित करने के लिए: क्या मुझे सर्वर पर कोई अतिरिक्त सॉफ्टवेयर इंस्टॉल करने की आवश्यकता है?

+0

हां। [http://blog.sqlauthority.com/2008/08/23/sql-server-2008-configure-database-mail-send-email-from-sql-database/](http://blog.sqlauthority.com/2008/08/23/एसक्यूएल-सर्वर -2008-कॉन्फ़िगरेशन-डेटाबेस-मेल-प्रेषण-ईमेल-से-एसक्यूएल-डेटाबेस /) – NitroxDM

+0

क्या आप कर सकते हैं? हाँ। अगर आप? बिलकुल नहीं, आईएमएचओ। http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-abusing-triggers.aspx –

उत्तर

5

यह उदाहरण शीर्षक तालिका में परिवर्तन करते समय निर्दिष्ट व्यक्ति (मैरीएम) को एक ई-मेल संदेश भेजता है।

USE pubs 
IF EXISTS (SELECT name FROM sysobjects 
     WHERE name = 'reminder' AND type = 'TR') 
    DROP TRIGGER reminder 
GO 
CREATE TRIGGER reminder 
ON titles 
FOR INSERT, UPDATE, DELETE 
AS 
    EXEC master..xp_sendmail 'MaryM', 
     'Don''t forget to print a report for the distributors.' 
GO 

स्रोत: MSDN

3

ट्रिगर को न्यूनतम समय तक रखा जाना चाहिए। परमाणु डेटाबेस अद्यतन/आवेषण/हटाना जितनी जल्दी हो सके होने की अनुमति दी जानी चाहिए। एक अलग तालिका जोड़ने पर विचार करें जो ट्रिगर डेटा सम्मिलित कर सकता है जिसमें एक अलग प्रक्रिया सामग्री के आधार पर एक ईमेल पर नज़र रखता है और शुरू करता है।

बेशक, यह पता नहीं चलता है कि ईमेल बनाने के लिए TransactSQL का उपयोग करना संभव है या नहीं - मैं उस बारे में उत्सुक हूं!

+0

पुन: ट्रिगर - हाँ। मुझे पता है, आदि इत्यादि। और यह केवल हटाए जाने के लिए है .. और केवल कुछ डीबगिंग उद्देश्यों के लिए और कुछ कम गतिविधि तालिकाओं पर और एसक्यूएल ईमेल एसिंक है, मुझे विश्वास है .. –

+0

डाटाबेस मेल है, लेकिन एसक्यूएलमेल और अन्य रूपों (विशेष रूप से sp_OA के माध्यम से सीडीओ का उपयोग कर) नहीं हैं। आपके मूल प्रश्न में आपने यह नहीं कहा था कि आप डेटाबेस मेल का उपयोग कर रहे थे, आपने वास्तव में SQL मेल कहा था। एक बड़ा अंतर है। किसी भी मामले में, भले ही आप अपने वर्तमान सिस्टम पर डेटाबेस मेल का उपयोग कर रहे हों, भले ही आप अपना कोड किसी अन्य सिस्टम पर ले जाएं, जहां आप किसी कारण से डेटाबेस मेल का उपयोग नहीं कर सकते? –

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