Cita:
Empezado por cacu
por otro lado puedes captutar el error en el mismo procedimiento
if @@erro<> o goto un_error:
un_error:
rolback
return(1);
aqui ya con la devolucion 1 puedes gestionar este erro
|
Francamente nunca he sido de la idea de hacer un rollback dentro de un procedimiento dentro de la propia base de datos.. no solo no es soportado por todos los motores, sino deja poca oportunidad para la re-utilización de código, ya que es indefinido (o al menos varía de motor a motor) cuál será el comportamiento con posibles próximas operaciones que uno podría suponer deben ir en el contexto de la misma transacción. En mi opinión, el control de las transacciones debe ser siempre explícito y desde fuera de los procedimientos y funciones almacenados.
Mis 2 centavos.