Buenos dias
tengo una inquietud sobre transaciones
si yo tengo dos procedimientos almacenados como los siguientes
CREATE PROCEDURE Inserta2
AS
SAVE TRAN Guardado
INSERT INTO Tabla1 VALUES ('Valor2')SET @Error=@@ERRORiF (@Error<>0) GOTO
TratarErrorCOMMIT TRANratarError:If @@Error<>0 BEGIN PRINT 'Ha ucurrido un
error.' ROLLBACK TRAN ENDGO
CREATE PROCEDURE Inserta1
AS
BEGIN TRAN
EXEC Inserta2
SET @Error=@@ERROR
iF (@Error<>0) GOTO TratarError
INSERT INTO Tabla1 VALUES ('Valor 3')
COMMIT TRAN
ratarError:
If @@Error<>0
BEGIN
PRINT 'Ha ucurrido un error.'
ROLLBACK TRAN
END
GO
Si es correcto que yo haga el commit tran en el procedimiento inserta2 que
y hacerlo de nuevo en inserta uno. si se ejecuta el rollback de inserta1
deshace todo lo realizado en el inserta2 aunque se haya ejecutado el commit
tran en el inserta1.
muchas gracias.
Leer las respuestas