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