НачатьНачать бесплатно

Предотвращение фантомных чтений для отдельных строк

Вам нужно проанализировать данные о клиентах банка с customer_id от 1 до 10. Вы хотите заблокировать только те строки таблицы customers, у которых customer_id находится в диапазоне от 1 до 10. Таким образом вы гарантируете, что никто не сможет изменить эти строки, при этом другие транзакции смогут работать с остальной частью таблицы.

Вам нужно выбрать клиентов и снова выполнить ряд математических операций. (В этом упражнении мы не будем на них останавливаться.) После этого вы хотите повторно выбрать клиентов с customer_id от 1 до 10, убедившись, что ничего не изменилось.

Как подготовить этот скрипт?

Это упражнение является частью курса

Транзакции и обработка ошибок в SQL Server

Посмотреть курс

Инструкции к упражнению

  • Установите подходящий уровень изоляции, чтобы предотвратить фантомные чтения.
  • Начните транзакцию.
  • Выберите клиентов, которых хотите заблокировать.
  • Зафиксируйте транзакцию.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

-- 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
___ ___
Редактировать и запускать код