begin transaction

23/01/2006 - 17:31 por Jeffry | Informe spam
es posible colocar un solo begin tran dentrod e un store proc y que este
beginntran verifique tod las transac de stores anidados?..o cada store debe
contener su propio begin tran

por ejemplo

create procedure proc 1
begin tran



exec proc2

exec proc3



if condicion
commit tran
else
rollback tran


create procedure proc 2
begin tran



if condicion
commit tran
else
rollback tran


create procedure proc 3
begin tran



exec proc4
.

if condicion
commit tran
else
rollback tran


create procedure proc 4
begin tran



if condicion
commit tran
else
rollback tran


o solo un begein tran en el primer store es suficiente para el restode
orpraciones

Preguntas similare

Leer las respuestas

#1 c
23/01/2006 - 23:47 | Informe spam
Si cada Store Procedure invocado tiene su propio Transaction, si mal no
recuerdo el mas externo no permite que esta transaccion se realice a menos
que el finalize de forma correcta.
Gracias

Carlos Andrés Lozano
Solution Development
Nativa Tecnologías



"Jeffry" wrote:

es posible colocar un solo begin tran dentrod e un store proc y que este
beginntran verifique tod las transac de stores anidados?..o cada store debe
contener su propio begin tran

por ejemplo

create procedure proc 1
begin tran



exec proc2

exec proc3



if condicion
commit tran
else
rollback tran


create procedure proc 2
begin tran



if condicion
commit tran
else
rollback tran


create procedure proc 3
begin tran



exec proc4
.

if condicion
commit tran
else
rollback tran


create procedure proc 4
begin tran



if condicion
commit tran
else
rollback tran


o solo un begein tran en el primer store es suficiente para el restode
orpraciones


Respuesta Responder a este mensaje
#2 qwalgrande
27/01/2006 - 17:24 | Informe spam
Hola.

No es sólo que puedas, es qe no es recomendable levantar una segunda
transacción cuando hay ya una corriendo. Lo que yo hago en estos casos es
verificarlo con la variable @@trancount. Si no tengo ninguna transacción
comenzada, realizo un begin tran, si ya hay una, no creo una segunda. Y a la
salida del sp, dejo el mismo número de transacciones que había en un
principio (si la he creado la finalizo y si no la he creado dejo que sea el
sp de por encima el que se encargue de seguir gestionándola).

declare @tengo_tran bit
select @tengo_tran = @@trancount

if @tengo_tran = 0 --si no hay transacción abierta, la inicio
begin tran

código del sp


if @tengo_tran = 0 --eso es que la he creado yo
commit tran


Alberto López Grande (qwalgrande)
"Jeffry" escribió en el mensaje
news:
es posible colocar un solo begin tran dentrod e un store proc y que este
beginntran verifique tod las transac de stores anidados?..o cada store
debe
contener su propio begin tran

por ejemplo

create procedure proc 1
begin tran



exec proc2

exec proc3



if condicion
commit tran
else
rollback tran


create procedure proc 2
begin tran



if condicion
commit tran
else
rollback tran


create procedure proc 3
begin tran



exec proc4
.

if condicion
commit tran
else
rollback tran


create procedure proc 4
begin tran



if condicion
commit tran
else
rollback tran


o solo un begein tran en el primer store es suficiente para el restode
orpraciones


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