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

Kiểm tra @@TRANCOUNT trong cấu trúc TRY...CATCH

Chủ tài khoản 10 trúng bốc thăm và sẽ được thưởng $200. Bạn chuẩn bị một script đơn giản để cộng $200 đó vào current_balance của tài khoản 10. Bạn nghĩ mình đã viết đúng hết, nhưng vẫn muốn kiểm tra lại mã.

Thực tế, bạn đã mắc một lỗi nhỏ khi cộng tiền: SET current_balance = 'current_balance' + 200. Bạn đã viết 'current_balance' như một chuỗi, dẫn đến lỗi.

Script bạn tạo cần rollback mọi thay đổi nếu xảy ra lỗi, bằng cách kiểm tra xem có giao dịch đang mở hay không. Nếu mọi thứ chạy đúng, giao dịch cần được commit, cũng sau khi kiểm tra xem có giao dịch đang mở hay không.

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.
  • Sửa lỗi trong phép toán.
  • Bên trong khối TRY, kiểm tra xem có giao dịch hay không và commit.
  • Bên trong khối CATCH, kiểm tra xem có giao dịch hay không và rollback.

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 TRY
	-- Begin the transaction
	___ ___;
    	-- Correct the mistake
		UPDATE accounts SET current_balance = 'current_balance' + 200
			WHERE account_id = 10;
    	-- Check if there is a transaction
		IF ___ > 0     
    		-- Commit the transaction
			___ ___;
     
	SELECT * FROM accounts
    	WHERE account_id = 10;      
END TRY
BEGIN CATCH  
    SELECT 'Rolling back the transaction'; 
    -- Check if there is a transaction
    IF ___ > 0   	
    	-- Rollback the transaction
        ___ ___;
END CATCH
Chỉnh sửa và Chạy Mã