В каком случае требуется вложенная транзакция? - PullRequest
4 голосов
/ 24 сентября 2011

Даже если транзакция является вложенной, она не будет обновляться до тех пор, пока не будет завершена транзакция. Так в чем же смысл вложенной транзакции и в какой конкретной ситуации требуется эта функция?

Ответы [ 3 ]

2 голосов
/ 24 сентября 2011

например, допустим такую ​​ситуацию:

Class A
{
 /// props
 save();
}

class B
{
  A a{get;set};
  // other props
  save();
}

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

1 голос
/ 24 сентября 2011

Ничто не называется вложенными транзакциями.

Единственная транзакция, которую рассматривает SQL, является самой внешней.Это тот, который совершил или откат.Вложенные транзакции синтаксически действительны, вот и все.Предположим, что вы вызываете процедуру изнутри транзакции, и эта процедура сама имеет транзакции; синтаксис позволяет вам вкладывать транзакции, однако единственная, которая оказывает какое-либо влияние, является самой внешней.*http://www.sqlskills.com/BLOGS/PAUL/post/A-SQL-Server-DBA-myth-a-day-(2630)-nested-transactions-are-real.aspx

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