Begin Transaction

20/10/2005 - 16:14 por Miguel | Informe spam
¿A qué se debe este error?

"The commit transaction request has no corresponding BEGIN TRANSACTION"

Tengo esta instrucción en un Stored Procedure y cunado lo ejecuto me da ese
error.

Gracias
 

Leer las respuestas

#1 Ivan Pascual
20/10/2005 - 16:34 | Informe spam
Hya sentencias que van anidadas dentro de transacciones.
Para trabajar con transacciones necesitas declararlas...

Para declararla se hace :
Begin tran
Insert into
Select
Commit

El Commit indica que se realizara la accion, en este caso se haria efectivo
el Insert del ejemplo, en el momento de ejecutar el Commit.
Si en lugar del Commit pones un Rollback, significa que lo que hagas dentro
de la transaccion no se va a realizar.

Para probar puedes abrir el analizador de consultas y pega lo siguiente.

Begin tran
Select Campo1 = 'a', Campo2 = 'b'
Into tmpTablaTemporal

Rollback

Select * from tmpTablaTemporal

Drop table tmpTablaTemporal

Si dejas el Rollback que va a pasar:
1. Se va a ejectuar el Select
2. Al hacer Rollback se destruye la tablatemporal que el select ha
creado
3. Da error pq esta ejecutando una tabla que no existe por que el
rollback no ha permitido generar el Select

Si pones el commit que va a pasar
1. Se va a ejectuar el Select
2. Al hacer Commit se crea la tablatemporal que el select ha creado
3.Ejectura el segundo select y funciona pq el commit ha permitido crear
la tabla temporal.

En tu caso en el stored hay un commit sin tener el Begin Tran.

Espero que me haya explicado con claridad, si tienes dudas sigue preguntando
o mirate las BOL
Saludos
Ivan Pascual
"Miguel" escribió en el mensaje
news:
¿A qué se debe este error?

"The commit transaction request has no corresponding BEGIN TRANSACTION"

Tengo esta instrucción en un Stored Procedure y cunado lo ejecuto me da
ese
error.

Gracias


Preguntas similares