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

Коли фіксувати або відкочувати транзакцію

Банк, у якому ви працюєте, вирішив надати 100 \( тим рахункам, на яких менше ніж 5 000 \). Проте директор банку хоче видати ці гроші лише за умови, що рахунків з балансом менше ніж 5 000 $ не більше 200.

Ви готуєте скрипт для нарахування цих 100 \(. Із кількох можливих підходів ви вирішуєте відкрити транзакцію, а потім оновити кожен рахунок із балансом менше ніж 5 000 \). Після цього ви перевіряєте кількість рядків, змінених оновленням, за допомогою функції @@ROWCOUNT. Якщо це число більше ніж 200, ви відкочуєте транзакцію. Інакше — фіксуєте її.

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

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

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

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

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

  • Розпочніть транзакцію.
  • Перевірте, чи кількість змінених рядків більша ніж 200.
  • Виконайте відкат транзакції, якщо кількість змінених рядків більша за 200.
  • Зафіксуйте транзакцію, якщо кількість змінених рядків менша або дорівнює 200.

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

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

-- Begin the transaction
___ ___; 
	UPDATE accounts set current_balance = current_balance + 100
		WHERE current_balance < 5000;
	-- Check number of affected rows
	IF @@ROWCOUNT > ___ 
		BEGIN 
        	-- Rollback the transaction
			___ ___; 
			SELECT 'More accounts than expected. Rolling back'; 
		END
	ELSE
		BEGIN 
        	-- Commit the transaction
			___ ___; 
			SELECT 'Updates commited'; 
		END
Редагувати та запускати код