«З приреченим станом» (doomed) транзакції
Ви хочете вставити дані двох нових клієнтів до таблиці customer. Ви готуєте скрипт, який у разі помилки відкочує транзакцію та виводить повідомлення про помилку. Ви хочете керувати цим за допомогою XACT_ABORT у поєднанні з XACT_STATE.
Ця вправа є частиною курсу
Транзакції та обробка помилок у SQL Server
Інструкції до вправи
- Використайте відповідне налаштування
XACT_ABORT. - Перевірте, чи є відкрита транзакція.
- Виконайте ROLLBACK транзакції.
- Виберіть (виведіть) текст повідомлення про помилку.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
-- Use the appropriate setting
SET XACT_ABORT ___;
BEGIN TRY
BEGIN TRAN;
INSERT INTO customers VALUES ('Mark', 'Davis', '[email protected]', '555909090');
INSERT INTO customers VALUES ('Dylan', 'Smith', '[email protected]', '555888999');
COMMIT TRAN;
END TRY
BEGIN CATCH
-- Check if there is an open transaction
IF ___() <> 0
-- Rollback the transaction
___;
-- Select the message of the error
SELECT ___() AS Error_message;
END CATCH