Consecutivo en concurrencia

05/12/2004 - 13:25 por Berta Gomez | Informe spam
Hola estoy haciendo una aplicacion que va a trabajar con muchos usuarios
concurrentes pero tengo dudas de como armar la transaccion de insercion para
que no vaya a haber saltos de secuencia
El consecutivo lo tengo un una tabla de consecutivos (no uso identity)

el seudocodigo pensado seria algo asi:

begin transaction
Incrementar el consecutivo en tabla de consecutivos
hacer la insercion (insert) con el nuevo consecutivo
si todoOK
commit
sino
rollback
fin

Mi pregunta es si por ej. dos usuarios incrementan el consecutivo casi al
mismo tiempo, y el primero debe hacer rollback, no se generaria un salto de
la secuencia ?

Preguntas similare

Leer las respuestas

#1 Maxi
05/12/2004 - 17:10 | Informe spam
Hola, te paso un articulo que escribi donde explico como solucionar este
tema :)

http://www.microsoft.com/spanish/ms...art187.asp

Suerte


"Berta Gomez" escribió en el mensaje
news:
Hola estoy haciendo una aplicacion que va a trabajar con muchos usuarios
concurrentes pero tengo dudas de como armar la transaccion de insercion
para
que no vaya a haber saltos de secuencia
El consecutivo lo tengo un una tabla de consecutivos (no uso identity)

el seudocodigo pensado seria algo asi:

begin transaction
Incrementar el consecutivo en tabla de consecutivos
hacer la insercion (insert) con el nuevo consecutivo
si todoOK
commit
sino
rollback
fin

Mi pregunta es si por ej. dos usuarios incrementan el consecutivo casi al
mismo tiempo, y el primero debe hacer rollback, no se generaria un salto
de
la secuencia ?




Respuesta Responder a este mensaje
#2 Javier Loria
06/12/2004 - 04:03 | Informe spam
Hola:
Tal vez algo como esto:
¾GIN TRAN
UPDATE TomaUnNumero
SET Valor=@Valor=Valor+1
WHERE Tipo='XYZ'
INSERT Tabla(Columna1, )
VALUES(@Valor, ...)
...
COMMIT
= Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Berta Gomez" wrote in message
news:
Hola estoy haciendo una aplicacion que va a trabajar con muchos usuarios
concurrentes pero tengo dudas de como armar la transaccion de insercion


para
que no vaya a haber saltos de secuencia
El consecutivo lo tengo un una tabla de consecutivos (no uso identity)

el seudocodigo pensado seria algo asi:

begin transaction
Incrementar el consecutivo en tabla de consecutivos
hacer la insercion (insert) con el nuevo consecutivo
si todoOK
commit
sino
rollback
fin

Mi pregunta es si por ej. dos usuarios incrementan el consecutivo casi al
mismo tiempo, y el primero debe hacer rollback, no se generaria un salto


de
la secuencia ?




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