Transacciones - Urgente

22/12/2004 - 19:40 por Javier Prozapas | Informe spam
Gente:
Necesito que la transaccion "B" me quede en la base de datos fisicamente ,
aunque la transaccion "A" haya echo un ROLLBACK, eso es posible???

ejemplo!!!:

drop table #pp
create table #pp(p int)

Begin tran a
GO

Insert into #pp values(1)
GO
begin tran b
GO
Insert into #pp values(2)
GO
commit tran b
GO
Rollback tran a
GO

select * from #pp


si ejecuto este proceso, en la table #pp no me quedan datos, y lo que quiero
es que me quede grabado fisicamente el valor "2" de la transaccion "B" (del
insert),
pero quiero que se pierda el insert del la transaccion "A" con el varlo
"1"..


Muchas gracias!!!


Preguntas similare

Leer las respuestas

#1 Isaias
23/12/2004 - 00:39 | Informe spam
A lo mejor es muy tonta mi respuesta, pero SAQUE la transaccion B de su
transaccion A.

Saludos.
Respuesta Responder a este mensaje
#2 Javier Prozapas
23/12/2004 - 02:43 | Informe spam
está bien lo que me decis, solo que no puedo porque yo en el ejemplo lo
mensione acotado a una sola transaccion , la "B", pero en la aplicacion que
estoy manteniendo tiene demaciadas transacciones anidadas, para poder sacar
una por una

Gracias , Javier Prozapas
"Isaias" escribió en el mensaje
news:
A lo mejor es muy tonta mi respuesta, pero SAQUE la transaccion B de su
transaccion A.

Saludos.
Respuesta Responder a este mensaje
#3 qwalgrande
23/12/2004 - 10:25 | Informe spam
Hola.

Las transacciones anidadas son un poco peligrosas exactamente por lo que
expones en tu ejemplo, las transacciones intermedias se pierden. Aunque te
suponga un considerable esfuerzo, plantéate ir quitando transacciones
anidadas poco a poco, dejando transacciones cortas que incluyan sólo lo
imprescindible, sin abrir nunca más de una, haciendo uso de @@trancount (es
decir, antes de iniciar la transacción compruebas si ya tienes una abierta y
si ya la tienes, no abrir otra).

qwalgrande

"Javier Prozapas" wrote:

está bien lo que me decis, solo que no puedo porque yo en el ejemplo lo
mensione acotado a una sola transaccion , la "B", pero en la aplicacion que
estoy manteniendo tiene demaciadas transacciones anidadas, para poder sacar
una por una

Gracias , Javier Prozapas
"Isaias" escribió en el mensaje
news:
> A lo mejor es muy tonta mi respuesta, pero SAQUE la transaccion B de su
> transaccion A.
>
> Saludos.



Respuesta Responder a este mensaje
#4 Javier Prozapas
23/12/2004 - 14:43 | Informe spam
Entiendo lo que me dicen, lo que yo se es que en ORACLE a este tipo de
transacciones , que son las cuales a mi me solucionan el problema se las
conocen como TRANSACCIONES AUTONOMAS, la pregunta es existe este concepto en
SQL 2000.
Es decir, por mas que tenga varios BEGIN dentro de una transaccion PADRE ,
pueden las transacciones intermedias ejecutarse de forma AUTÓNOMA,
independientemente del BEGIN PADRE???..

Muchas gracias...
Javier P.


"qwalgrande" <qwalgrande*nospam*@yahoo.es> wrote in message
news:
Hola.

Las transacciones anidadas son un poco peligrosas exactamente por lo que
expones en tu ejemplo, las transacciones intermedias se pierden. Aunque te
suponga un considerable esfuerzo, plantéate ir quitando transacciones
anidadas poco a poco, dejando transacciones cortas que incluyan sólo lo
imprescindible, sin abrir nunca más de una, haciendo uso de @@trancount


(es
decir, antes de iniciar la transacción compruebas si ya tienes una abierta


y
si ya la tienes, no abrir otra).

qwalgrande

"Javier Prozapas" wrote:

> está bien lo que me decis, solo que no puedo porque yo en el ejemplo lo
> mensione acotado a una sola transaccion , la "B", pero en la aplicacion


que
> estoy manteniendo tiene demaciadas transacciones anidadas, para poder


sacar
> una por una
>
> Gracias , Javier Prozapas
> "Isaias" escribió en el mensaje
> news:
> > A lo mejor es muy tonta mi respuesta, pero SAQUE la transaccion B de


su
> > transaccion A.
> >
> > Saludos.
>
>
>
Respuesta Responder a este mensaje
#5 Ricardo Passians
23/12/2004 - 14:57 | Informe spam
No se el tipo de sistema en particular donde lo implementas pero mi opinion
basada en la experiencia es que en la práctica normalmente no hay necesidad
de anidar transacciones pues el "todo o nada" es lo más seguro en una
aplicación. Si pudieras analizar la real necesidad de esto. Aunque no es
que no se puedan anidar el asunto es que el ROLLBACK las revierte todas. De
todos modos ya te indicaron que en la nueva versión de sql server existirá
esa característica.


"Javier Prozapas" wrote in message
news:%
Entiendo lo que me dicen, lo que yo se es que en ORACLE a este tipo de
transacciones , que son las cuales a mi me solucionan el problema se las
conocen como TRANSACCIONES AUTONOMAS, la pregunta es existe este concepto


en
SQL 2000.
Es decir, por mas que tenga varios BEGIN dentro de una transaccion PADRE ,
pueden las transacciones intermedias ejecutarse de forma AUTÓNOMA,
independientemente del BEGIN PADRE???..

Muchas gracias...
Javier P.


"qwalgrande" <qwalgrande*nospam*@yahoo.es> wrote in message
news:
> Hola.
>
> Las transacciones anidadas son un poco peligrosas exactamente por lo que
> expones en tu ejemplo, las transacciones intermedias se pierden. Aunque


te
> suponga un considerable esfuerzo, plantéate ir quitando transacciones
> anidadas poco a poco, dejando transacciones cortas que incluyan sólo lo
> imprescindible, sin abrir nunca más de una, haciendo uso de @@trancount
(es
> decir, antes de iniciar la transacción compruebas si ya tienes una


abierta
y
> si ya la tienes, no abrir otra).
>
> qwalgrande
>
> "Javier Prozapas" wrote:
>
> > está bien lo que me decis, solo que no puedo porque yo en el ejemplo


lo
> > mensione acotado a una sola transaccion , la "B", pero en la


aplicacion
que
> > estoy manteniendo tiene demaciadas transacciones anidadas, para poder
sacar
> > una por una
> >
> > Gracias , Javier Prozapas
> > "Isaias" escribió en el mensaje
> > news:
> > > A lo mejor es muy tonta mi respuesta, pero SAQUE la transaccion B de
su
> > > transaccion A.
> > >
> > > Saludos.
> >
> >
> >


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