¿Esto es secuencialidad?

23/11/2005 - 17:21 por César | Informe spam
Esto se usa para gestionar la creación de una nueva clave para la tabla
clientes, sin hacer uso por supuesto de campos identity autincrmentales y
tal. Y por supuesto la razón de esta tabla auxiliar PA_key es para que cuando
se bloquee, sea ésta y no toda la tabla de clientes que sería un poco burrada
porque impediria joins en la transacción.
Mi pregunta es ¿como me aseguro de que una transacción no se mete entre
medias del curso de otra? la cual consultaria datos inconsistentes. ¿Deberia
bloquear PA_key?¿Como lo hago? graciassssss

begin tran
select @ult_nro = ult_nro_cliente from PA_key
set @ult_nro = @ult_nro + 1
insert clientes (clienteId) select cienteId + @ult_nro
update PA_key set ult_nro_cliente = @ult_nro
commint tran
 

Leer las respuestas

#1 Isaias
23/11/2005 - 17:28 | Informe spam
El BEGIN TRAN, te asegura que NINGUNA otra transaccion, dara inicio, hasta en
tanto, no termine la que inicio dicha transaccion.


Saludos
IIslas


"César" escribió:

Esto se usa para gestionar la creación de una nueva clave para la tabla
clientes, sin hacer uso por supuesto de campos identity autincrmentales y
tal. Y por supuesto la razón de esta tabla auxiliar PA_key es para que cuando
se bloquee, sea ésta y no toda la tabla de clientes que sería un poco burrada
porque impediria joins en la transacción.
Mi pregunta es ¿como me aseguro de que una transacción no se mete entre
medias del curso de otra? la cual consultaria datos inconsistentes. ¿Deberia
bloquear PA_key?¿Como lo hago? graciassssss

begin tran
select @ult_nro = ult_nro_cliente from PA_key
set @ult_nro = @ult_nro + 1
insert clientes (clienteId) select cienteId + @ult_nro
update PA_key set ult_nro_cliente = @ult_nro
commint tran



Preguntas similares