इस सवाल के लिए चलाता है बस के लिए एक ही सम्मिलित बहुत SQL Server 2005: T-SQL to temporarily disable a triggerMSSQL: अक्षम एक सम्मिलित
के समान हालांकि मैं भी आदेशों का एक बैच के लिए सभी ट्रिगर और नहीं निष्क्रिय करने के लिए नहीं करना चाहते हैं, लेकिन है।
मैं एक दुकान प्रणाली है जहाँ मूल लेखक एक ट्रिगर में कुछ आवेदन तर्क डाल से निपटने के लिए (बुरा विचार!)। जब तक आप मूल "प्रशासन फ्रंटेंड" की तुलना में किसी अन्य तरीके से डेटा डालने का प्रयास नहीं करते हैं, तब तक वह एप्लिकेशन तर्क ठीक काम करता है। मेरा काम "स्टेजिंग सिस्टम से आयात" उपकरण लिखना है, इसलिए मेरे पास सभी डेटा तैयार हैं। जब मैं इसे सम्मिलित करने का प्रयास करता हूं, तो ट्रिगर किसी उत्पादित उत्पाद के साथ मौजूदा उत्पाद कोड (पहचान संख्या आईडी आईडी नहीं) को ओवरराइट करता है। कोड उत्पन्न करने के लिए यह किसी अन्य तालिका में किसी प्रविष्टि की स्वत: जेनरेटेड आईडी का उपयोग करता है, ताकि मैं अपने बस डाले गए कॉलम को ढूंढने के लिए @@ पहचान के साथ भी काम न कर सकूं और वास्तविक उत्पाद कोड के साथ डाली गई पंक्ति को अपडेट कर सकूं।
किसी भी तरह से है कि मैं extremly अजीब कोड से बचने के लिए जाना (उत्पाद का नाम में कुछ यादृच्छिक वर्ण सम्मिलित करें और फिर इसे अद्यतन करने के लिए यादृच्छिक पात्रों के साथ पंक्ति खोजने की कोशिश) कर सकते हैं।
तो: के लिए केवल एक INSERT के लिए ट्रिगर (यहां तक कि केवल एक) को अक्षम करने का कोई तरीका है?
क्रिस्टोफ पद है कि जैसे वे वास्तव में आपकी समस्या का समाधान हो सकता है देखने के लिए समाधान की एक जोड़ी है - केवल आपके मामले में पता है कि तुम है कि एक करने के लिए अपने को स्वीकार कर लिया जवाब परिवर्तन के लिए तैयार कर रहे हैं बताना चाहता था। – SqlRyan