লেনদেনের সাথে সম্মিলিতভাবে ট্রিগার


25

ধরুন আমাদের নিম্নলিখিত পরিস্থিতি রয়েছে:

আমাদের একটি টেবিল রয়েছে (বলুন Table_A) যেটির ট্রিগার রয়েছে INSERT। ট্রিগার কাজটি হ'ল table_Bvaluesোকানো মানগুলির ভিত্তিতে কয়েকটি সারি আপডেট করা table_A

এখন, আমরা টেবিলে একটি সারি সন্নিবেশ করানোর সময় সবকিছু ঠিকঠাক হয়, তবে লেনদেনের মাধ্যমে ডেটা সন্নিবেশ করানোর পরিস্থিতিতে কী হয়? সমস্ত লেনদেনের বিবৃতি সফলভাবে চালিত হওয়া অবধি ট্রিগার কি অপেক্ষা করবে বা সন্নিবেশটিকে স্বীকৃতি দেওয়ার মুহুর্তে তা বরখাস্ত করা হবে ?. ট্রিগারটি যদি প্রথম সন্নিবেশটিকে স্বীকৃতি দেয় তখন সাথে সাথে তাৎক্ষণিকভাবে গুলি চালিয়ে যায়, লেনদেনটি শেষ সারিটিতে ব্যর্থ হলে কী হবে ?. এই পরিস্থিতিতে কি কোন ব্যবস্থা আছে ?.

উত্তর:


37

একটি সন্নিবেশ সর্বদা লেনদেনের মধ্যে থাকে।

আপনার যদি স্পষ্ট না হয় BEGIN TRAN ... COMMITবা SET IMPLICIT_TRANSACTIONS ONতারপরে বিবৃতিটি স্ব-অন্তর্ভুক্ত অটো কমিট লেনদেন হিসাবে চলে

ট্রিগারটি অগ্নিকান্ডের কর্মের জন্য ট্রিগার সর্বদা লেনদেনের অংশ। ট্রিগারটিতে যদি কোনও ত্রুটি দেখা দেয় যা লেনদেন রোলব্যাকের কারণ হয় তবে ফায়ারিং অ্যাকশনটিও আবার ফিরিয়ে আনা হবে।

ট্রিগার স্পষ্টভাবে চালু আছে XACT_ABORT। এই সেটিংটির সাথে একটি ত্রুটি স্বয়ংক্রিয়ভাবে লেনদেনের রোলব্যাকের দিকে পরিচালিত করবে ( RAISERRORবিবৃতি সহ কোডটিতে উত্থাপিত ত্রুটিগুলি বাদ দিয়ে )।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.