Quando la mia applicazione C# .net aggiorna i record in più di una tabella, utilizzo le transazioni, quindi se qualcosa dovesse fallire durante la transazione posso eseguire il rollback.Dov'è il posto migliore per gestire le transazioni nella stored procedure o nell'applicazione?
Quale è una pratica migliore?
-Utilizzare la stored procedure con BEGIN TRANSACTION/ROLLBACK/COMMIT TRANSACTION; -Usa TransactionScope nell'applicazione come di seguito:
using (TransactionScope ts = new TransactionScope())
{
}
Ha detto che la sua app aggiorna i record in più di una tabella. Ciò significa che o ha bisogno di aprire il tran in un proc e di impegnarsi in un altro, o ha bisogno di avere tutta la logica in un proc (o in più procs che si chiamano) che non è mai una buona cosa ... – zvolkov
True, transazione db dovrebbe finire il più velocemente possibile. L'opposto non è mai una buona cosa. – Constantin
È possibile aprire una transazione su più tabelle, più database e persino server. Come dice Mufaka, è meglio lasciare che il server SQL gestisca le proprie transazioni o si potrebbero avere seri problemi di integrità dei dati. Praticamente il punto delle transazioni penso. – Praesagus