Я помещаю транзакции во все мои "установленные" процедуры.Нет проблем.Все работает.
В этом случае мне нужна одна установленная процедура, чтобы вызывать другую, к счастью, только один раз, или это могло бы еще больше усложнить ситуацию.
Так что счастливое омовение будет.
- Я в ProcA и начинаю транзакцию.
- Вызывает ProcB и начинает транзакцию.
- ProcB успешен и фиксирует.
- ProcA успешен и фиксирует.
Однако,что произойдет, если ProcB завершится неудачно, откатится и сбросит ошибку.Это также должно привести к корректному откату ProcA?
Что если ProcB завершится успешно, завершится, затем ProcA завершится неудачно и произойдет откат ... произойдет ли откат того, что произошло в ProcB?или это зафиксировано?
Мне нужно, чтобы эти два работали вместе, либо оба преуспели, либо потерпели неудачу, и оба откатились.Каков наилучший способ обеспечить это?
Я работаю с Microsoft SQL Server 2008 R2 (SP1)
Примечание. Если ProcB требует транзакцию, поскольку ее можно вызвать без переноса в ProcA,Технически, ProcA не всегда вызывает ProcB (зависит от ввода).