2008-09-18 16 views
5

मेरे पास एक टेबल पर दो ट्रिगर हैं जिन्हें मैं अलग रखना चाहता हूं और उन्हें priortize करना चाहता हूं।आप तालिका के एकाधिक ट्रिगर्स को कैसे विभाजित करते हैं?

मेरे पास केवल एक ट्रिगर हो सकता है और वहां तर्क हो सकता है, लेकिन मैं सोच रहा था कि क्या इसे पूर्व परिभाषित क्रम में रखने का एक आसान/तार्किक तरीका था?

उत्तर

6

sp_settriggerorder का उपयोग करें। आप ऑपरेशन के आधार पर आग के लिए पहला और अंतिम ट्रिगर निर्दिष्ट कर सकते हैं।

sp_settriggerorder on MSDN

ऊपर के लिंक से:
ए कोई DML ट्रिगर
निम्न उदाहरण के लिए फायरिंग क्रम निर्धारित करना यह बताता है कि ट्रिगर एक अद्यतन ऑपरेशन के बाद पर होता है आग पहले ट्रिगर हो uSalesOrderHeader Sales.SalesOrderHeader तालिका।

 
USE AdventureWorks; 
GO 
sp_settriggerorder 
    @triggername= 'Sales.uSalesOrderHeader', 
    @order='First', 
    @stmttype = 'UPDATE'; 

बी एक DDL ट्रिगर
निम्न उदाहरण के लिए फायरिंग क्रम निर्धारित करना यह बताता है कि ट्रिगर एक ALTER_TABLE घटना के बाद AdventureWorks डेटाबेस में होता है आग पहले ट्रिगर हो ddlDatabaseTriggerLog।

 
USE AdventureWorks; 
GO 
sp_settriggerorder 
    @triggername= 'ddlDatabaseTriggerLog', 
    @order='First', 
    @stmttype = 'ALTER_TABLE', 
    @namespace = 'DATABASE'; 
1

आप तालिका पर प्रत्येक ट्रिगर के क्रम को परिभाषित करने के लिए sp_settriggerorder का उपयोग कर सकते हैं।

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

0

यदि आप ट्रिगर ऑर्डर बदलते हैं तो याद रखें, कोई और बाद में आ सकता है और इसे फिर से व्यवस्थित कर सकता है। और आप कहां दस्तावेज करेंगे कि ट्रिगर ऑर्डर क्या होना चाहिए ताकि रखरखाव डेवलपर आदेश के साथ गड़बड़ न करे या चीजें टूट जाएंगी? यदि दो ट्रिगर कार्यों को निश्चित रूप से एक विशिष्ट क्रम में किया जाना चाहिए, तो एकमात्र सुरक्षित मार्ग उन्हें एक ही ट्रिगर में रखना है।

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

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