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

Ngăn phantom read chỉ trên một số hàng

Bạn cần phân tích một số dữ liệu về khách hàng ngân hàng có customer_id từ 1 đến 10. Bạn chỉ muốn khóa các hàng của bảng customers với customer_id từ 1 đến 10. Làm như vậy, bạn đảm bảo không ai có thể thay đổi các hàng này, đồng thời cho phép các giao dịch khác làm việc với phần còn lại của bảng.

Bạn cần chọn các khách hàng và thực hiện lại một số phép toán. (Trong bài này, chúng ta cũng không tập trung vào các phép toán đó.) Sau đó, bạn muốn chọn lại các khách hàng có customer_id từ 1 đến 10, để chắc chắn rằng không có gì thay đổi.

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

  • Thiết lập mức cô lập phù hợp để ngăn phantom read.
  • Bắt đầu một giao dịch.
  • Chọn những khách hàng bạn muốn khóa.
  • COMMIT giao dịch.

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.

-- Set the appropriate isolation level
___ ___ ___ ___ ___

-- Begin a transaction
___ ___

-- Select customer_id between 1 and 10
SELECT * 
FROM customers
___ customer_id ___ ___ AND ___;

-- After completing some mathematical operation, select customer_id between 1 and 10
SELECT * 
FROM customers
___ customer_id ___ ___ AND ___;

-- Commit the transaction
___ ___
Chỉnh sửa và Chạy Mã