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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Miguel
20/10/2005 - 18:29 | Informe spam
Gracias, Pascual.

"Ivan Pascual" wrote in message
news:
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
>
>


Respuesta Responder a este mensaje
#3 Maxi
20/10/2005 - 22:27 | Informe spam
Ojo con el control de errores @@error debe ir por cada instruccion


Salu2
Maxi [MVP SQL SERVER]


"Miguel" escribió en el mensaje
news:
Gracias, Pascual.

"Ivan Pascual" wrote in message
news:
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
>
>






Respuesta Responder a este mensaje
#4 Miguel
20/10/2005 - 23:09 | Informe spam
Muy buena aclaración, gracias Maxi

"Maxi" wrote in message
news:#
Ojo con el control de errores @@error debe ir por cada instruccion


Salu2
Maxi [MVP SQL SERVER]


"Miguel" escribió en el mensaje
news:
> Gracias, Pascual.
>
> "Ivan Pascual" wrote in message
> news:
>> 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
>> >
>> >
>>
>>
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida