Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/02/2013, 14:11
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Transacciones y procedmienos almacenados

Procedimientos almacenados y transacciones no son cosas excluyentes.
Los SP son para hacer tareas complejas de varias etapas, las cuales deben ejecutarse como un todo (atomicidad). Pero también pueden usarse para sentencias únicas simplemente para aumentar la seguridad ante sql-injection.
Ahora bien, un SP puede a su vez contener una transacción o estar contenido en una transacción.
Son cosas técnicamente diferentes.
Donde sí se requiere una transacción es cuando debes hacer uno o mas pasos de ABM (INSERT/UPDATE/DELETE), que deben completarse todos, o eliminarse todos.
No hay una forma más descriptiva que eso.

Posiblemente el mejor ejemplo sea un retiro de un cajero automático: Se actualizan muchas tablas (caja, cuenta, historial, cuentas de sucursal, movimientos internos del banco... son muchas), pero hasta que no terminó la última (dinero retirado del expendedor de billetes), la transacción no se considera terminada, y por tanto el rollback tiene que eliminar todas las etapas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)