Transacciones anidadas

18/10/2007 - 04:30 por Anti_Work | Informe spam
Hola, Necesito anidar una transaccion dentro de otra y no se como
confirmarlas o desecharlas. Se que se usa COMMIT TRANSACTION y ROLLBACK
TRANSACTION, pero no se como.
Gracias desde ya, Saludos

Preguntas similare

Leer las respuestas

#1 Rubén Vigón
18/10/2007 - 10:42 | Informe spam
[...] Cada llamada a COMMIT TRANSACTION o COMMIT WORK se aplica a la última instrucción BEGIN TRANSACTION ejecutada. Si las instrucciones BEGIN TRANSACTION están anidadas, la instrucción COMMIT sólo se aplica a la última transacción anidada, que es la más interna. Aunque una instrucción COMMIT TRANSACTION transaction_name de una transacción anidada haga referencia al nombre de la transacción externa, la confirmación sólo se aplicará a la transacción más interna

Más información en:

Anidar transacciones
http://technet.microsoft.com/es-es/...89336.aspx

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#2 Anti_Work
18/10/2007 - 12:25 | Informe spam
Gracias amigo, si que hay buena información en el link que me dejaste. A ver
si me puedes ayudar con algo que seguro es muy elemental pero no me doy idea.
En seudocodigo lo que quiero hacer es:

1) BEGIN TRANSACTION T1
2) tareas varias 1
3) BEGIN TRANSACTION T2
4) tareas varias 2
5) Si no hubo errores cofirmar las trans. de lo contrario desecharlas

Hasta 4) he llegado. pero no se como hacer le 5). Necesito un ejemplo simple
o algo que contemple la posibilidad de que se produnzcan errores tanto en 2)
como en 4).

Muchas gracias, Saludos


"Anti_Work" wrote:

Hola, Necesito anidar una transaccion dentro de otra y no se como
confirmarlas o desecharlas. Se que se usa COMMIT TRANSACTION y ROLLBACK
TRANSACTION, pero no se como.
Gracias desde ya, Saludos
Respuesta Responder a este mensaje
#3 Enrique Catala Bañuls
18/10/2007 - 21:16 | Informe spam
Para lo que quieres, si no ha habido error, tendras que ponerle dos COMMIT
TRANSACCTION, y si ha habido algun error, con un ROLLBACK sobra, las dos
transacciones sobrarán

De todas formas, a menos que cada transacción sea de un origen de datos
diferente ( oracle T1, sql server T2, por ejemplo ) , no te hace falta tener
dos transacciones. Ten en cuenta que mantener una transacción es trabajo para
el servidor, cuando lo puedes resolver con una , hazlo con una.

Salu2!
Atentamente, Enrique Catala Bañuls


"Anti_Work" wrote:

Gracias amigo, si que hay buena información en el link que me dejaste. A ver
si me puedes ayudar con algo que seguro es muy elemental pero no me doy idea.
En seudocodigo lo que quiero hacer es:

1) BEGIN TRANSACTION T1
2) tareas varias 1
3) BEGIN TRANSACTION T2
4) tareas varias 2
5) Si no hubo errores cofirmar las trans. de lo contrario desecharlas

Hasta 4) he llegado. pero no se como hacer le 5). Necesito un ejemplo simple
o algo que contemple la posibilidad de que se produnzcan errores tanto en 2)
como en 4).

Muchas gracias, Saludos


"Anti_Work" wrote:

> Hola, Necesito anidar una transaccion dentro de otra y no se como
> confirmarlas o desecharlas. Se que se usa COMMIT TRANSACTION y ROLLBACK
> TRANSACTION, pero no se como.
> Gracias desde ya, Saludos
Respuesta Responder a este mensaje
#4 Anti_Work
19/10/2007 - 00:41 | Informe spam
Muchas gracias por las respuestas, estuve analizando y llegué a la conclusión
de que lo que quiero hacer lo puedo hacer con una sola trans.

saludos

"Enrique Catala Bañuls" wrote:

Para lo que quieres, si no ha habido error, tendras que ponerle dos COMMIT
TRANSACCTION, y si ha habido algun error, con un ROLLBACK sobra, las dos
transacciones sobrarán

De todas formas, a menos que cada transacción sea de un origen de datos
diferente ( oracle T1, sql server T2, por ejemplo ) , no te hace falta tener
dos transacciones. Ten en cuenta que mantener una transacción es trabajo para
el servidor, cuando lo puedes resolver con una , hazlo con una.

Salu2!
Atentamente, Enrique Catala Bañuls


"Anti_Work" wrote:

> Gracias amigo, si que hay buena información en el link que me dejaste. A ver
> si me puedes ayudar con algo que seguro es muy elemental pero no me doy idea.
> En seudocodigo lo que quiero hacer es:
>
> 1) BEGIN TRANSACTION T1
> 2) tareas varias 1
> 3) BEGIN TRANSACTION T2
> 4) tareas varias 2
> 5) Si no hubo errores cofirmar las trans. de lo contrario desecharlas
>
> Hasta 4) he llegado. pero no se como hacer le 5). Necesito un ejemplo simple
> o algo que contemple la posibilidad de que se produnzcan errores tanto en 2)
> como en 4).
>
> Muchas gracias, Saludos
>
>
> "Anti_Work" wrote:
>
> > Hola, Necesito anidar una transaccion dentro de otra y no se como
> > confirmarlas o desecharlas. Se que se usa COMMIT TRANSACTION y ROLLBACK
> > TRANSACTION, pero no se como.
> > Gracias desde ya, Saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida