Фиксация транзакции - PullRequest
       4

Фиксация транзакции

0 голосов
/ 28 марта 2010

http://msdn.microsoft.com/en-us/library/ms189797.aspx

В этой ссылке они совершают транзакцию в предложении catch IF (XACT_STATE ()) = 1, я не понимаю, если есть ошибка, почему они ее совершают? даже если проблема в операторе выбора и нет ничего сложного, почему бы просто не откатить ее.

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 марта 2010

Это просто демонстрационный код, показывающий, что SET XACT_ABORT ON; делает невозможным принятие транзакции в случае возникновения ошибки.

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

0 голосов
/ 28 марта 2010

Ссылка демонстрирует свое использование, вот и все.

Сказав это, может случиться так, что в более сложном коде вы захотите сделать частичную фиксацию, например, вместо отката всей транзакции. Тем не менее, вы не сможете (например, SET XACT_ABORT ON используется в качестве примера)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...