Giao dịch bị doomed
Bạn muốn chèn dữ liệu của hai khách hàng mới vào bảng customer. Bạn chuẩn bị một script để kiểm soát rằng nếu xảy ra lỗi, giao dịch sẽ ROLLBACK và bạn nhận được thông báo lỗi. Bạn muốn kiểm soát việc này bằng XACT_ABORT kết hợp với XACT_STATE.
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
Hướng dẫn bài tập
- Sử dụng thiết lập phù hợp cho
XACT_ABORT. - Kiểm tra xem có giao dịch đang mở hay không.
- ROLLBACK giao dịch.
- SELECT thông báo lỗi.
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.
-- Use the appropriate setting
SET XACT_ABORT ___;
BEGIN TRY
BEGIN TRAN;
INSERT INTO customers VALUES ('Mark', 'Davis', '[email protected]', '555909090');
INSERT INTO customers VALUES ('Dylan', 'Smith', '[email protected]', '555888999');
COMMIT TRAN;
END TRY
BEGIN CATCH
-- Check if there is an open transaction
IF ___() <> 0
-- Rollback the transaction
___;
-- Select the message of the error
SELECT ___() AS Error_message;
END CATCH