ПочатиПочніть безкоштовно

Запобігайте «фантомним» зчитуванням лише для окремих рядків

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

Потрібно вибрати цих клієнтів і знову виконати деякі математичні операції. (У цій вправі ми не зосереджуємося на самих операціях.) Після цього ви хочете ще раз вибрати клієнтів із customer_id від 1 до 10 та переконатися, що нічого не змінилося.

Як підготувати скрипт?

Ця вправа є частиною курсу

Транзакції та обробка помилок у SQL Server

Переглянути курс

Інструкції до вправи

  • Встановіть відповідний рівень ізоляції, щоб запобігти «фантомним» зчитуванням.
  • Почніть транзакцію.
  • Виберіть тих клієнтів, яких потрібно заблокувати.
  • Зафіксуйте транзакцію (COMMIT).

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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