Исправление транзакции
Сегодня вам передали скрипт с ошибками. Его написал коллега, который не знал, как правильно завершить код. Коллега пытался перевести 100 $ со счёта 1 на счёт 5 и зарегистрировать эти операции в таблице transactions.
Вы сразу замечаете несколько ошибок: SQL Server не распознаёт операторы транзакций, которые в нём используются.
Можете ли вы исправить этот скрипт?
Это упражнение является частью курса
Транзакции и обработка ошибок в SQL Server
Инструкции к упражнению
- Запустите код, чтобы убедиться в наличии ошибок.
- Исправьте каждую из них.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
BEGIN TRY
START TRAN;
UPDATE accounts SET current_balance = current_balance - 100 WHERE account_id = 1;
INSERT INTO transactions VALUES (1, -100, GETDATE());
UPDATE accounts SET current_balance = current_balance + 100 WHERE account_id = 5;
INSERT INTO transactions VALUES (5, 100, GETDATE());
FINISH TRAN;
END TRY
BEGIN CATCH
UNDO TRAN;
END CATCH