SQL Server - TRANSACIONES

 
Vista:

TRANSACIONES

Publicado por GPA (1 intervención) el 23/03/2006 13:34:42
Hola,
este es el codigo que tengo en un procedimiento almacenado que aunque esta bien escrito me da un error al ejecutarlo:
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

EL ERROR ES:
"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 hago mal? Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:TRANSACIONES

Publicado por andrea (7 intervenciones) el 12/05/2006 21:56:33
Primero que nada es conocer el proceso checa esto.

BEGIN TRANSACTION inicia una transacción local para la conexión que emite la instrucción. Según la configuración del nivel de aislamiento de la transacción actual, la transacción bloquea muchos recursos adquiridos para aceptar las instrucciones Transact-SQL emitidas por la conexión hasta que la misma finaliza con una instrucción COMMIT TRANSACTION o ROLLBACK TRANSACTION. Las transacciones que quedan pendientes durante mucho tiempo pueden impedir que otros usuarios tengan acceso a estos recursos bloqueados y pueden impedir también el truncamiento del registro.

un ejemplo es:

BEGIN TRANSACTION CandidateDelete
WITH MARK N'Deleting a Job Candidate';
GO
USE AdventureWorks;
GO
DELETE FROM AdventureWorks.HumanResources.JobCandidate
WHERE JobCandidateID = 13;
GO
COMMIT TRANSACTION CandidateDelete;
GO

talvez te sea mas claro si revizas esta pagina:
http://msdn2.microsoft.com/es-es/library/ms188929.aspx
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar