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.
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


0