/ / C # ADO.NET dla pojedynczej operacji SQL niezbędnej do wycofania transakcji na wyjątku? - sql-server, transakcje, ado.net, commit, rollback

C # ADO.NET dla pojedynczej operacji SQL niezbędnej do wycofania transakcji na wyjątku? - sql-server, transakcje, ado.net, commit, rollback

Zawijam moją pojedynczą operację zapisu SQL w SqlTransaction

Jeśli wystąpi wyjątek SqlCommand.ExcuteNonQuery() , czy trzeba zadzwonić SqlTransaction.Rollback() ?

Na wyjątek, jaki jest stan SqlTransaction zostawiony w ? Będzie SQL Server wycofać operację samodzielnie?

Odpowiedzi:

0 dla odpowiedzi № 1

Stan transakcji zależy od błędusurowość. Niektóre błędy programu SQL Server spowodują automatyczne wycofanie transakcji, a inne nie. Proponuję wywołać metodę Rollback w próbie / catch w zewnętrznym bloku wyjątków.