Поделиться через


Транзакции (Transact-SQL)

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

SQL Server работает в следующих режимах транзакций.

  • Автоматическое принятие транзакций
    Каждая отдельная инструкция является транзакцией.

  • Явные транзакции
    Каждая транзакция явно начинается с инструкции BEGIN TRANSACTION и явно заканчивается инструкцией COMMIT или ROLLBACK.

  • Неявные транзакции
    Новая транзакция неявно начинается, когда предыдущая транзакция завершена, но каждая транзакция явно завершается инструкцией COMMIT или ROLLBACK.

  • Транзакции контекста пакета
    Будучи применимой только к множественным активным результирующим наборам (MARS), явная или неявная транзакция Transact-SQL, которая запускается в сеансе MARS, становится транзакцией контекста пакета. SQL Server автоматически выполняет откат транзакции контекста пакета, если эта транзакция не принята при завершении пакета или не выполнен ее откат.

Дополнительные сведения см. в разделе Транзакции (компонент Database Engine).