фиксация транзакции? - PullRequest
       2

фиксация транзакции?

0 голосов
/ 24 марта 2011

Может кто-нибудь объяснить, когда и зачем использовать commit? http://msdn.microsoft.com/en-us/library/ms190295.aspx

.

1) Обновление в таблице X записиM

2) Обновление в таблице Y записиN

3) Обновление в таблице Z записи O

4) используйте коммит здесь

..

В случае, если 2) происходит сбой и записьN не обновляется, затем выполнить откат и не переходить к 3) и 4) фиксации? это где вы бы это использовали?

Ответы [ 2 ]

2 голосов
/ 24 марта 2011

используйте коммит, когда одна или несколько операций (транзакций) завершены, и вы хотите внести изменения в базу данных.

в вашем примере, если 2) произошел сбой, вы должны выполнить откат, и операция 1) будет отменена, так что ваша база данных будет согласованной

например. если у вас есть система книжного магазина, когда вы продаете книгу, вы должны выполнить несколько операций:

    • скидка на акции
    • создать историю продаж
    • зарядить карточку клиента

вы хотите, чтобы все операции были выполнены успешно или ничего не было сделано. поэтому вы должны:

  1. начать переход
  2. сделать шаг 1,2,3
  3. коммит

если что-то не так, откатить (отменить) все

1 голос
/ 24 марта 2011

Всегда используйте commit, если вы хотите рассматривать пару операций как одно действие. Это означает, что когда хотя бы один сбой, все возвращаются к состоянию до фиксации.

Это очень полезно, потому что некоторые действия должны рассматриваться как операции с атомами, например. банковские операции.

...