Транзакция — это групповая операция, т. е. набор действий с базой данных. Все операции, выполняемые с данными на SQL сервере, происходят в контексте транзакций. Если во время выполнения данного набора действий, на каком-то этапе невозможно произвести очередное действие, то нужно выполнить возврат базы данных к начальному состоянию (произвести откат транзакции). Таким образом обеспечивается целостность базы данных.
Транзакции важны по двум причинам. Во-первых, транзакции позволяют приложениям исполнять несколько SQL выражений как одну логическую единицу. Приложению может понадобиться, чтобы результаты выражения SELECT не затронуты конкурентными транзакциями. Поместив выражения SELECT и INSERT внутри одной транзакции, мы даем команду базе данных, чтобы доступ к текущим ресурсам был заблокирован. Отсутствие блокировки данных таблицы может привести к неправильному считыванию id.
Во-вторых, мы не можем слепо исполнять и прерывать все SQL выражения. Например, некоторые SQL выражения зависят от результатов других SQL выражений. В пример можно привести систему онлайн банка. Если пользователь желает списать деньги со сберегательного счета и разместить их на текущий счет, то приложение должно отменить транзакцию, если один из запросов будет неудачным. Иногда SQL выражения могут нарушить бизнес правила. Например, если при списании денег на счету остается отрицательный баланс, то транзакция должна быть отменена, чтобы пользователь не списал денег больше, чем есть на счете.