Programación en castellano
Inicio > Foros > SQL Server > TRANSACIONES
-Foros de debate

SQL Server
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

TRANSACIONES
Enviado por GPA el día 23 de marzo de 2006

tengo un problema con el siguiente codigo en un procedimiento almacenado:

BEGIN TRANSACTION

DECLARE @Error int

INSERT INTO TABLA1
(
Campo1 ,
)
VALUES
(
@Valor
)

SELECT @Error = @@ERROR
IF @Error != 0 GOTO ERROR_HANDLER

UPDATE TABLA2
SET
Campo1 = 1

SELECT @Error = @@ERROR
IF @Error != 0 GOTO ERROR_HANDLER

COMMIT TRANSACTION

ERROR_HANDLER:
ROLLBACK TRANSACTION
RETURN @Error
GO

la primera tabla no existe y me devuelve este mensaje de error:

"El recuento de transacciones después de EXECUTE indica
que falta una instrucción COMMIT o ROLLBACK TRANSACTION· 
Recuento anterior = 1‚ recuento actual = 2."

¿Que estoy poniendo mal?
Gracias.

 
Re: TRANSACIONES
Enviado por Pablo el día 25 de marzo de 2006

te cuento como funciona el begin, cada vez que pones un begin se incrementa una variable de sistema, si pones tres begin esa variable ( en este momento no me acuerdo como se llama) se incrementa en 3 y para que commiteé tenes que hacer 3 commit, pero eso cuando rollbackeas tenes que dejar esa variable en cero, esto te da la posibilidad de rollbacker 1 y commitear 2.
el error es porque salis de la transaccion con esta variable distinta de 0, fijate.
espero te sirva
salu2

 


Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad
Mantenida por: Claudio y Dani.

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | amor | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados