Problema con Transacciones

09/08/2006 - 11:03 por solusoft | Informe spam
Hola a todos, escribí un mensaje anterior.

Voy a reformular la pregunta. Estoy con Sql Server 2000 y el analizador de
consultas exclusivamente, ya nada de C# ni ado.net como dije en el mensaje
anterior.

En el Analizador de consultas hago lo siguiente:


CREATE TABLE Test (Columna int PRIMARY KEY)

begin tran t1

save tran t1

select @@ERROR, @@ROWCOUNT, @@TRANCOUNT -- @@TRANCOUNT vale 1

INSERT INTO Test VALUES (1xx)

select @@ERROR, @@ROWCOUNT, @@TRANCOUNT -- @@TRANCOUNT vale 1

INSERT INTO Test VALUES ('1xx')
tipo de datos int.



select @@ERROR, @@ROWCOUNT, @@TRANCOUNT -- @@TRANCOUNT vale 0 !!!!!!

rollback tran t1 -- Falla si @@TRANCOUNT vale 0

commit tran -- Falla si @@TRANCOUNT vale 0

select @@ERROR, @@ROWCOUNT, @@TRANCOUNT -- @@TRANCOUNT vale 0
SELECT * FROM Test

DROP TABLE Test


Tengo dos Inserts dentro de una transacción. Los dos inserts fallan. El
último me cancela la transacción al fallar, TRANCOUNT pasa de 1 a 0 !!!


INSERT INTO Test VALUES (1xx)

Para este Insert, después de su ejecución, TRANCOUNT sigue valiendo 1



INSERT INTO Test VALUES ('1xx')
tipo de datos int.

Para este Insert, después de su ejecución, TRANCOUNT pasa a valer 0 !!!
No entiendo el porqué... alguien puede aclararme, estoy desesperado...

Gracias a todos.
 

Leer las respuestas

#1 Carlos Sacristán
09/08/2006 - 11:34 | Informe spam
Echa un vistazo al tema SET IMPLICIT_TRANSACTIONS en los BOL


Un saludo

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

"solusoft" escribió en el mensaje
news:
Hola a todos, escribí un mensaje anterior.

Voy a reformular la pregunta. Estoy con Sql Server 2000 y el analizador de
consultas exclusivamente, ya nada de C# ni ado.net como dije en el mensaje
anterior.

En el Analizador de consultas hago lo siguiente:


CREATE TABLE Test (Columna int PRIMARY KEY)

begin tran t1

save tran t1

select @@ERROR, @@ROWCOUNT, @@TRANCOUNT -- @@TRANCOUNT vale 1

INSERT INTO Test VALUES (1xx)

select @@ERROR, @@ROWCOUNT, @@TRANCOUNT -- @@TRANCOUNT vale 1

INSERT INTO Test VALUES ('1xx')


de
tipo de datos int.



select @@ERROR, @@ROWCOUNT, @@TRANCOUNT -- @@TRANCOUNT vale 0 !!!!!!

rollback tran t1 -- Falla si @@TRANCOUNT vale 0

commit tran -- Falla si @@TRANCOUNT vale 0

select @@ERROR, @@ROWCOUNT, @@TRANCOUNT -- @@TRANCOUNT vale 0
SELECT * FROM Test

DROP TABLE Test


Tengo dos Inserts dentro de una transacción. Los dos inserts fallan. El
último me cancela la transacción al fallar, TRANCOUNT pasa de 1 a 0 !!!


INSERT INTO Test VALUES (1xx)

Para este Insert, después de su ejecución, TRANCOUNT sigue valiendo 1



INSERT INTO Test VALUES ('1xx')


de
tipo de datos int.

Para este Insert, después de su ejecución, TRANCOUNT pasa a valer 0 !!!
No entiendo el porqué... alguien puede aclararme, estoy desesperado...

Gracias a todos.

Preguntas similares