XACT_ABORT और THROW
जिस बैंक में आप काम करते हैं, उसके सबसे संपन्न ग्राहकों ने अपनी current_balance का 0.01% एक गैर-लाभकारी संगठन को दान करने का निर्णय लिया है। आपको ग्राहकों के अकाउंट अपडेट करने के लिए स्क्रिप्ट तैयार करनी है, लेकिन यह केवल उन अकाउंट्स के लिए करना है जिनकी current_balance $5,000,000 से अधिक है। बैंक की डायरेक्टर आपको बताती हैं कि यदि कम-से-कम 10 संपन्न ग्राहक नहीं हैं, तो आपको यह ऑपरेशन नहीं करना चाहिए, क्योंकि वह और ग्राहकों का इंटरव्यू लेना चाहती हैं.
आप एक स्क्रिप्ट तैयार करते हैं, और इसे करने के कई तरीकों में से, आप THROW के साथ XACT_ABORT का उपयोग करने का निर्णय लेते हैं। इस तरह, यदि प्रभावित पंक्तियों की संख्या 10 से कम या बराबर हो, तो आप एक एरर थ्रो कर सकते हैं ताकि ट्रांज़ैक्शन रोल बैक हो जाए.
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL Server में Transactions और Error Handling
अभ्यास निर्देश
XACT_ABORTकी उपयुक्त सेटिंग का उपयोग करें.- ट्रांज़ैक्शन शुरू करें.
- यदि प्रभावित पंक्तियों की संख्या 10 से कम या बराबर हो, तो
THROWस्टेटमेंट का उपयोग कर 55000 नंबर के साथ एरर थ्रो करें. - यदि प्रभावित पंक्तियों की संख्या 10 से अधिक हो, तो ट्रांज़ैक्शन कमिट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
-- Use the appropriate setting
SET XACT_ABORT ___;
-- Begin the transaction
___ ___;
UPDATE accounts set current_balance = current_balance - current_balance * 0.01 / 100
WHERE current_balance > 5000000;
IF @@ROWCOUNT <= 10
-- Throw the error
___ ___, 'Not enough wealthy customers!', 1;
ELSE
-- Commit the transaction
___ ___;