Hola,
llevaba varias semanas tras un error, inexplicable para mi, relacionado con
transacciones.
El caso es que tenía una aplicación Windows Forms .NET en C# y SQL SERVER
2000 . En un formulario inicio una transacción, realizo una serie de select e
inserts -que son indiferentes para aceptar o cancelar la transacción-, y
acepto transacción.
La cuestión es que si falla por ejemplo un insert dentro de la transacción,
al hacer el commit, me da un error:
La petición COMMIT TRANSACTION no tiene la correspondiente BEGIN TRANSACTION
The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION
En el analizador de consultas hago:
begin tran
select * from CORC_TEMP_COMPROMISOS where it_accion = 'M'
select @@trancount
select * from CORC_TEMP_COMPROMISOS where it_accion = 'A'
select @@trancount
Insert into CORC_COMPROMISOS (cd_linea_financiera, cd_asociacion,
cd_accion, nm_grupos, nm_participantes)
values ( '5','0001',33,33,33) -- falla por triggers , es indiferente para el
commit/rollbak de la transacción
select @@trancount -- aqui vale 0 !!!!!!!!!! DEBERIA VALER 1 !!!!!
commit tran
El caso es que al fallar cualquier consulta (select, insert...) dentro de la
transacción, justo después el trancount me vale 0, y debería valer 1.
Alguién sabe cómo pu edo solucionarlo ? Es posbile que sea configuración de
SQL SERVER ??
Saludos cordiales y gracias anticipadas.
Leer las respuestas