開始使用免費開始

選擇何時 commit 或 rollback 交易

你任職的銀行決定針對餘額少於 $5,000 的帳戶發放 $100。但行長只願意在符合條件的帳戶不超過 200 個時才發放。

你準備撰寫一段指令來發放這 $100。在多種做法中,你決定先開啟一個交易,接著更新所有餘額少於 $5,000 的帳戶。之後,使用 @@ROWCOUNT 函式檢查這次更新所影響的列數。如果這個數字大於 200,就 rollback 交易;否則就 commit。

你要如何撰寫這段指令?

本練習屬於課程

SQL Server 的交易與錯誤處理

檢視課程

練習說明

  • 開始交易。
  • 檢查受影響列數是否大於 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
編輯並執行程式碼