Ayuda con transaccion

22/11/2005 - 04:42 por Cesar | Informe spam
Hola amnigos, tengo un problema con transacciones

tengo este codigo

BEGIN TRAN

Select ..
Insert...
Update ...

IF @@ERROR <> 0
ROLLBACK TRAN
ELSE
COMMIT TRAN


Cuando se cae en el update , bueno no actualiza pero si inserta
que es lo que pasa si aqui si algo falla no deberia hacer nada, que estoy
haciendo mal?

Saludois

Cesar
 

Leer las respuestas

#1 Carlos Sacristán
22/11/2005 - 08:05 | Informe spam
La comprobación de @@ERROR la tienes que hacer después de cada
instrucción, no sólo al procesarse el UPDATE. Es decir, que tendría que ser
algo así:

BEGIN TRAN

Select ..
IF @@ERROR <> 0
GOTO MAL
Insert...
IF @@ERROR <> 0
GOTO MAL
Update ...
IF @@ERROR <> 0
GOTO MAL

OK:
COMMIT TRAN
RETURN 0

MAL:
ROLLBACK TRAN
RETURN -1


En la nueva versión ya tenemos el try...catch que nos hará el manejo de
errores más sencillo

Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Cesar" escribió en el mensaje
news:
Hola amnigos, tengo un problema con transacciones

tengo este codigo

BEGIN TRAN

Select ..
Insert...
Update ...

IF @@ERROR <> 0
ROLLBACK TRAN
ELSE
COMMIT TRAN


Cuando se cae en el update , bueno no actualiza pero si inserta
que es lo que pasa si aqui si algo falla no deberia hacer nada, que estoy
haciendo mal?

Saludois

Cesar


Preguntas similares