SQL - Como controlo la concurrencia en una insercion

 
Vista:

Como controlo la concurrencia en una insercion

Publicado por Widman Widenar (17 intervenciones) el 03/05/2002 04:07:17
Hola amigos como puedo controlar la concurrencia en la insercion de un nuevo registro, es decir he asignado como clave primaria un valor que genero por codigo que es el siguiente maximo valor es decir si el ultimo es "200" el siguiente valor sera "201" pero mi duda es que pasa si dos o mas usuarios simultaneamente tratan de insertar un
registro como puedo gestionar esa concurrencia.

Esto lo hago desde un procedimiento almacenado.
CREATE PROCEDURE mete_registro
@nro_lector char(6),
@nombre char(30)
AS
Declare @max_valor int
SELECT @max_valor=MAX(codigo) FROM Mi_Tabla
SET @max_valor=@max_valor + 1
INSERT INTO Mi_Tabla(codigo,nro_lector,nombre)
VALUES (@max_valor,@nro_lector,@nombre)

que debo tener en cuenta en estos casos de concurrencia y como solucionar los problemas que pueda existir, como aislo esta insercion para que solo se ejecute uno a la vez, aqui se usa el BEGIN TRANSACTION??
Calarenme este punto si algo esta mal planteado :-)
Gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como controlo la concurrencia en una insercion

Publicado por danu (1 intervención) el 17/07/2002 00:32:49
Se me ocurre hacer un
select top 1 order by id where user=tu_user,
ese sería el último id no puede el mismo usuario cargar + de 1 id a la vez....

Ojalá te sirva..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar