Вы можете найти довольно полное руководство по этому вопросу здесь , но в итоге SQL Server не вернет управление приложению, которое совершило транзакцию, пока эта транзакция не будет защищена на диске. В частности, после того, как он был укреплен в файле журнала транзакций, управление может быть возвращено.
На этом этапе данные не могут быть защищены в файл данных, они все еще могут находиться в кеше буфера данных, но поскольку они были добавлены в журнал транзакций, восстановление базы данных в случае сбоя может восстановить это. транзакции и сохраните изменения безопасно.
В памяти имеется буферный кэш журнала, который используется для снижения влияния последовательных операций записи в журналы транзакций. Буфер сбрасывается на диск при нескольких условиях, но одним из них является фиксация транзакции. До тех пор, пока эти данные не будут защищены, управление не будет возвращено вызывающей стороне, поэтому даже если у вас возникнет ошибка во время этой очистки буфера, согласованность транзакций сохраняется, поскольку эта транзакция еще не считается подтвержденной. Вы потеряете изменения данных в этой транзакции, но поскольку она не была зафиксирована, ваше приложение уже будет считать эти изменения потерянными, поскольку фиксация никогда не была завершена.