CommitTrans сразу после BeginTrans - PullRequest
       21

CommitTrans сразу после BeginTrans

0 голосов
/ 16 декабря 2018

Я просматривал код того, кто использовал cn.BeginTrans прямо перед удалением таблицы.Код выглядел примерно так:

cn.BeginTrans
   //Update or delete table code
cn.CommitTrans

Я играл с BeginTrans и UpdateTrans, и я понимаю, что он делает.Это в основном похоже на управление версиями, где BeginTrans = git add и git commit и UpdateTrans = git push.По крайней мере, я так понимаю.

Что я не понимаю, так это тот факт, что Commitrans используется сразу после begintrans.Если код зафиксирован согласно этой записи stackoverflow, откат невозможен.

Почему бы просто не удалить или обновить таблицу, не используя метод Trans, если вы собираетесь немедленно выполнить коммит?

1 Ответ

0 голосов
/ 16 декабря 2018

При однократном удалении или обновлении в режиме автоматической фиксации (по умолчанию) транзакция не требуется, поскольку каждый оператор гарантированно равен «все или ничего».Однако в случае нескольких операторов важно использовать явную транзакцию, чтобы гарантировать, что все изменения сделаны (зафиксированы) или нет (отменены) для поддержания согласованной базы данных.Обычно можно выполнить откат в блоке перехвата (или использовать TransactionScope), чтобы обеспечить откат изменений после ошибок.

...