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

Использование уровня изоляции READ UNCOMMITTED

В ваш банк приходит новый клиент, чтобы открыть счёт. Вы вносите его данные в систему, и запускается следующий скрипт:

BEGIN TRAN

  INSERT INTO customers (first_name, last_name, email, phone)
  VALUES ('Ann', 'Ros', '[email protected]', '555555555')

  DECLARE @cust_id INT = scope_identity()

  INSERT INTO accounts (account_number, customer_id, current_balance)
  VALUES ('55555555555010121212', @cust_id, 150)

COMMIT TRAN

В этот момент ваш коллега из отдела маркетинга начинает рассылку писем всем клиентам — объявлен розыгрыш автомобиля! Его скрипт получает данные каждого клиента, включая того, которого вы только что добавили. При этом скрипт коллеги запускается после первой операции INSERT, но до выполнения COMMIT TRAN.

Как такое возможно?

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

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

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

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

  • Задайте уровень изоляции READ UNCOMMITTED.
  • Выберите столбцы first_name, last_name, email и phone из таблицы customers.

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

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

-- Set the appropriate isolation level
___ TRANSACTION ___ LEVEL ___ ___

	-- Select first_name, last_name, email and phone
	SELECT
    	___, 
        ___, 
        ___,
        ___
    FROM customers;
Редактировать и запускать код