मैं नीचे ट्रिगर है? इसके बजाय यदि यह 'सम्मिलित करने के लिए' है, तो क्या उस मामले में 'रोलबैक लेनदेन' पंक्ति को हटा देता है?एसक्यूएल सर्वर - - सम्मिलित करें/सम्मिलित के लिए बाद रोलबैक
धन्यवाद !!!
मैं नीचे ट्रिगर है? इसके बजाय यदि यह 'सम्मिलित करने के लिए' है, तो क्या उस मामले में 'रोलबैक लेनदेन' पंक्ति को हटा देता है?एसक्यूएल सर्वर - - सम्मिलित करें/सम्मिलित के लिए बाद रोलबैक
धन्यवाद !!!
आपका INSERT
बयान हमेशा एक सौदे में चलता है - या तो आप स्पष्ट रूप से एक परिभाषित किया है, या यदि नहीं , तो SQL सर्वर एक अंतर्निहित लेनदेन का उपयोग करेगा।
आप अपनी तालिका में एक (या एकाधिक) पंक्ति डाल रहे हैं। फिर - अभी भी लेनदेन के अंदर - AFTER INSERT
ट्रिगर चलता है और कुछ शर्तों की जांच करता है - आमतौर पर ट्रिगर के अंदर उपलब्ध Inserted
छद्म तालिका का उपयोग करके, जिसमें पंक्तियां शामिल की गई हैं।
आप अपने ट्रिगर में ROLLBACK TRANSACTION
फोन है, तो हाँ - अपने लेन-देन, सब कुछ के साथ यह कर दिया गया है, है वापस लुढ़का हुआ है और मानो कि INSERT
कभी नहीं हुआ यह है - कुछ भी नहीं अपने डेटाबेस तालिका में दिखाई देता है।
इसके अलावा: FOR INSERT
एसक्यूएल सर्वर में AFTER INSERT
के रूप में एक ही है - ट्रिगर के बाद INSERT
बयान अपने काम किया है निष्पादित किया जाता है।
एक ध्यान में रखना है (जो प्रोग्रामर का एक बहुत गलत) बात: - नहीं प्रति पंक्ति एक बार ट्रिगर बैच प्रति एक बार गोली चलाई है! तो यदि आप एक बार में 20 पंक्तियां डालते हैं, तो ट्रिगर को निकाल दिया जाता है और Inserted
ट्रिगर के अंदर छद्म तालिका में 20 पंक्तियां होती हैं। ट्रिगर लिखते समय आपको इसे ध्यान में रखना होगा - आप नहीं हमेशा डालने वाली एक पंक्ति से निपट रहे हैं!
+1। विशेष रूप से बैच बिट के लिए! :) –
...
उत्तर के लिए धन्यवाद! मैं पंक्ति को तब जोड़ने के लिए कैसे रोकूं? – zoe
@ मिच व्हाट: एक लेनदेन हमेशा मौजूद रहेगा - नहीं? या तो स्पष्ट या निहित। और रोलबैक उस लेनदेन को समाप्त कर देगा और कुछ भी पूर्ववत करेगा कि यह लेनदेन तालिका में करने का प्रयास कर रहा था। –
हां, माफ करना मार्क, यह सही है। मेरा मतलब एक स्पष्ट लेनदेन था। मुझे लगता है कि मैंने पानी को गड़बड़ कर दिया होगा ... मैं पिछली टिप्पणी हटा दूंगा। –
आप उन मूल्यों को '@ प्रशिक्षक नहीं' और '@ एरियानाम' कहां से प्राप्त करते हैं ?? असल में, यदि आप अपने ट्रिगर में 'रोलबैक ट्रांज़ेक्शन' कहते हैं, तो आप ** अपने 'INSERT' ** को रोक देंगे और निरस्त कर देंगे और –