Bắt đầu ngayBắt đầu miễn phí

Chọn thời điểm commit hoặc rollback một giao dịch

Ngân hàng nơi bạn làm việc quyết định tặng $100 cho các tài khoản có số dư dưới $5,000. Tuy nhiên, giám đốc ngân hàng chỉ muốn tặng nếu không có quá 200 tài khoản có số dư dưới $5,000.

Bạn chuẩn bị một script để tặng $100 đó, và trong nhiều cách có thể, bạn quyết định mở một giao dịch rồi cập nhật mọi tài khoản có số dư dưới $5,000. Sau đó, bạn kiểm tra số hàng bị ảnh hưởng bởi câu lệnh cập nhật, sử dụng hàm @@ROWCOUNT. Nếu con số này lớn hơn 200, bạn rollback giao dịch. Ngược lại, bạn commit.

Bạn sẽ chuẩn bị script như thế nào?

Bài tập này là một phần của khóa học

Giao dịch và Xử lý lỗi trong SQL Server

Xem khóa học

Hướng dẫn bài tập

  • Bắt đầu giao dịch.
  • Kiểm tra xem số hàng bị ảnh hưởng có lớn hơn 200 không.
  • Rollback giao dịch nếu số hàng bị ảnh hưởng lớn hơn 200.
  • Commit giao dịch nếu số hàng bị ảnh hưởng nhỏ hơn hoặc bằng 200.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

-- 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
Chỉnh sửa và Chạy Mã