Registro fantasma con transacciones en ASP

23/06/2004 - 00:08 por Cesar Correa | Informe spam
hola, de nuevo yo!
mi problema es el siguiente:con SQL SERVER 2000 bajo Small
Business server 2000.

Cuando ocurre un rollback en mi codigo de transaccion, el
registro que debia ser insertado en la tablas no queda
insertado obviamemte por rollback, pero si se me salta un
consecutivo en la tabla, ejemplo: el registro numero 1230
iba a ser insertado, pero hubo rollback, entonces el
proximo registro que quedará grabado exitosamente ocupara
la fila 1031!! paso del 1029 al 1031!
el tipo de campo es int, con Identidad en consecutivos de
a 1.

por lo anterior se deduce que el registro 1230, no existe,
no se ve, no quedo grabado, pero sql porque no respeta el
consecutivo y se salta el de rollbacktrans ??


Muchas gracias!!!
 

Leer las respuestas

#1 Hero
23/06/2004 - 00:15 | Informe spam
Cesar:

Ocuerre eso por la sensilla razon que SQL SERVER utiliza otro mecanismo
que se encarga de incrementar dicho campo, resulta que cuando haces el
INSERT, igual ocupas el valor incrementado en uno, ya que el registro igual
lo insertas.

Luego con el ROLLBACK, lo unico que haces es ir a la tabla INSERTED que está
en memoria con los registros insertados y eliminar los mismos registros por
el ROLLBACK realizado, luego SQL SERVER se encarga de eliminar los registros
en la tabla DESTINO que contine la tabla DELETED.

Saludos.


Que la fuerza este contigo,- Hero.



"Cesar Correa" escribió en el mensaje
news:1fcfd01c458a5$6ceac5b0$
hola, de nuevo yo!
mi problema es el siguiente:con SQL SERVER 2000 bajo Small
Business server 2000.

Cuando ocurre un rollback en mi codigo de transaccion, el
registro que debia ser insertado en la tablas no queda
insertado obviamemte por rollback, pero si se me salta un
consecutivo en la tabla, ejemplo: el registro numero 1230
iba a ser insertado, pero hubo rollback, entonces el
proximo registro que quedará grabado exitosamente ocupara
la fila 1031!! paso del 1029 al 1031!
el tipo de campo es int, con Identidad en consecutivos de
a 1.

por lo anterior se deduce que el registro 1230, no existe,
no se ve, no quedo grabado, pero sql porque no respeta el
consecutivo y se salta el de rollbacktrans ??


Muchas gracias!!!

Preguntas similares