किस समय ट्रांज़ैक्शन को commit करें या rollback करें, चुनना
जिस बैंक में आप काम करते हैं, उसने उन खातों को $100 देने का फैसला किया है जिनमें बैलेंस $5,000 से कम है. हालाँकि, बैंक डायरेक्टर यह पैसा तभी देना चाहते हैं जब $5,000 से कम बैलेंस वाले खातों की संख्या 200 से ज़्यादा न हो.
आप उन $100 को देने के लिए एक स्क्रिप्ट तैयार करते हैं, और कई तरीकों में से आप यह तय करते हैं कि पहले एक ट्रांज़ैक्शन खोलें और फिर हर उस खाते को अपडेट करें जिसका बैलेंस $5,000 से कम है. उसके बाद, आप @@ROWCOUNT फंक्शन का उपयोग करके अपडेट से प्रभावित हुई पंक्तियों (rows) की संख्या जाँचते हैं. अगर यह संख्या 200 से बड़ी है, तो आप ट्रांज़ैक्शन को rollback करते हैं. अन्यथा, आप इसे commit करते हैं.
आप स्क्रिप्ट कैसे तैयार करेंगे?
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL Server में Transactions और Error Handling
अभ्यास निर्देश
- ट्रांज़ैक्शन शुरू करें.
- जाँचें कि प्रभावित पंक्तियों की संख्या 200 से बड़ी है या नहीं.
- यदि प्रभावित पंक्तियों की संख्या 200 से ज़्यादा हो, तो ट्रांज़ैक्शन rollback करें.
- यदि प्रभावित पंक्तियों की संख्या 200 से कम या बराबर हो, तो ट्रांज़ैक्शन commit करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
-- Begin the transaction
___ ___;
UPDATE accounts set current_balance = current_balance + 100
WHERE current_balance < 5000;
-- Check number of affected rows
IF @@ROWCOUNT > ___
BEGIN
-- Rollback the transaction
___ ___;
SELECT 'More accounts than expected. Rolling back';
END
ELSE
BEGIN
-- Commit the transaction
___ ___;
SELECT 'Updates commited';
END