BEGIN TRANS - COMMIT TRANS が 1 つの SP で実行され、複数の SP が TransactionScope で実行され、スコープを完了する前にエラーがスローされるとどうなりますか。
したがって、擬似コードは次のとおりです
//Using TransactionScope() {
// executing SP1
// executing SP2
// executing SP3
// throw new Exception();
//}
SP2 には、次のコードが含まれています。
// BEGIN TRANS
// Update Statement1
// Update Statement2
// Update Statement3
// COMMIT TRANS
SP2 でトランザクションがコミットされると仮定するとどうなるでしょうか。
- すべてがロールバックされる
- SP2 の 3 つのステートメントがコミットされます。他のすべてはロールバックされますか?
問題があるかどうかはわかりませんが、念のため、3 つの SP すべてが 1 つの接続オブジェクトを使用して実行され、2 つの ExecuteNonQuery ステートメントの間で接続が閉じられ、再び開かれます。