เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเลือกว่าจะ commit หรือ rollback ธุรกรรม

ธนาคารที่คุณทำงานอยู่ตัดสินใจมอบเงิน $100 ให้กับบัญชีที่มียอดคงเหลือน้อยกว่า $5,000 อย่างไรก็ตาม ผู้อำนวยการธนาคารต้องการให้เงินนี้เฉพาะในกรณีที่มีบัญชีที่มียอดน้อยกว่า $5,000 ไม่เกิน 200 บัญชีเท่านั้น

คุณจึงเตรียมสคริปต์เพื่อมอบเงิน $100 ดังกล่าว โดยเลือกวิธีการเปิดธุรกรรมแล้วอัปเดตทุกบัญชีที่มียอดคงเหลือน้อยกว่า $5,000 จากนั้นตรวจสอบจำนวนแถวที่ได้รับผลกระทบจากการอัปเดตด้วยฟังก์ชัน @@ROWCOUNT หากตัวเลขนี้มากกว่า 200 ให้ rollback ธุรกรรม มิฉะนั้นให้ commit

จะเตรียมสคริปต์นี้อย่างไร?

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Transactions and Error Handling in SQL Server

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เริ่มต้นธุรกรรม
  • ตรวจสอบว่าจำนวนแถวที่ได้รับผลกระทบมากกว่า 200 หรือไม่
  • Rollback ธุรกรรมหากจำนวนแถวที่ได้รับผลกระทบมากกว่า 200
  • Commit ธุรกรรมหากจำนวนแถวที่ได้รับผลกระทบน้อยกว่าหรือเท่ากับ 200

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

-- 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
แก้ไขและรันโค้ด