2009-06-25 18 views

Odpowiedz

3

Dla ADO.NET to żadna różnica. Jest to domyślnie podane w MSDN, gdzie dla obiektu SqlTransaction metoda Commit ma "zawieść, jeśli transakcja została już wycofana na serwerze."

Ponadto program SQL Server Profiler pokazuje "USTAWIĆ POZIOM IZOLACJI USTAWIEŃ TRANSAKCJI, ZAPOZNAJ SIĘ ZOBOWIĄZANY, BEGIN TRAN", gdy tylko wykonasz .BeginTransaction na połączeniu.

Dla ADO (nie .NET) jednak tak nie jest. Pozwalało to na ładne scenariusze z efektywnie zagnieżdżonymi transakcjami (trans serwera były zagnieżdżone w klientach). Pomimo tego, że bardzo dużo z tego korzystałem, nie potrafię dokładnie określić, czym była "transakcja klienta".

2

Jeśli zamierzasz wywołać wiele zapisanych proców z rzędu i chcesz mieć możliwość ich wycofania, musisz zarządzać transakcją za pomocą SqlConnection.BeginTransaction(). W przeciwnym razie jest to to samo.

Powiązane problemy