Поиск…


замечания

Транзакция - это логическая единица работы, содержащая один или несколько шагов, каждая из которых должна быть успешно завершена, чтобы транзакция зафиксировала базу данных. Если есть ошибки, то все изменения данных стираются, и база данных возвращается в исходное состояние в начале транзакции.

Простая транзакция

BEGIN TRANSACTION
    INSERT INTO DeletedEmployees(EmployeeID, DateDeleted, User)
        (SELECT 123, GetDate(), CURRENT_USER);
    DELETE FROM Employees WHERE EmployeeID = 123;
COMMIT TRANSACTION

Откат транзакции

Когда что-то не удается в коде транзакции и вы хотите его отменить, вы можете отменить транзакцию:

BEGIN TRY
    BEGIN TRANSACTION
        INSERT INTO Users(ID, Name, Age)
        VALUES(1, 'Bob', 24)
        
        DELETE FROM Users WHERE Name = 'Todd'
   COMMIT TRANSACTION
END TRY
BEGIN CATCH
   ROLLBACK TRANSACTION
END CATCH


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow