क्या मुझे अपने सभी ट्रिगर पर SET NOCOUNT को जोड़ना चाहिए?


21

यह काफी सामान्य ज्ञान है जो आपको होना चाहिए

SET NOCOUNT ON   

नई संग्रहीत कार्यविधियाँ बनाते समय डिफ़ॉल्ट रूप से।

Microsoft ने इसे 2012 में शामिल करने के लिए डिफ़ॉल्ट टेम्प्लेट को बदल दिया है। मुझे लगा कि यह ट्रिगर्स के लिए समान होना चाहिए, फिर भी यह टेम्प्लेट में शामिल नहीं है।

क्या यह जानबूझकर या सिर्फ एक निरीक्षण है?


1
यदि आप कभी SSMS टेबल एडिटर के माध्यम से मान संपादित करते हैं तो यह ट्रिगर के लिए आवश्यक है अन्यथा ट्रिगर से अतिरिक्त पंक्ति गणना संदेश इसे भ्रमित करता है
मार्टिन स्मिथ

यह सबसे अधिक संभावना है। इसके अलावा stackoverflow.com/questions/1483732/set-nocount-on-usage कृपया देखें
gbn

जवाबों:


24

व्यक्तिगत रूप से, मैं इसकी सिफारिश करूंगा - मैं एक कारण के बारे में नहीं सोच सकता, जब तक कि आपके पास एक ट्रिगर नहीं है जहां आप विशेष रूप से इस तथ्य को बाहर करना चाहते हैं कि यह पर्दे के पीछे अतिरिक्त काम कर रहा है।

मैंने ट्रिगर्स लिखते समय देखने के लिए चीजों के बारे में एक छोटा लेख लिखा था, और यह उनमें से एक है: http://dave.brittens.org/2012/03/29/ Writing / well-behaved- triggers/

tl; डॉ वर्जन:

  1. बकबक काटना। NOCOUNT का उपयोग करें।
  2. सुनिश्चित करें कि आपका ट्रिगर कई पंक्तियों को संभाल सकता है।
  3. अनबाउंड ट्रिगर कैस्केडिंग और पुनरावृत्ति को रोकें।
  4. INSERTED और DELETED आभासी तालिकाओं के भयानक प्रदर्शन से बचें।

URL पुराना है। यहाँ अपडेट किया गया URL है: dave.brittens.org/blog/writing-well-behaved-triggers.html
Jonathon Watney

अच्छी पकड़। मैंने अभी कुछ हफ़्ते पहले अपनी साइट पेलिकन को अपडेट की थी। ;)
db2
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.