Utilizo sql server 2000...
Ha esta altura esta pregunta es para matarme...
aunque no muy elegante (por el mecanismo) este código de abajo lo que hace
es grabar un nuevo registro en una tabla.
Dicha tabla tiene un campo clave que es IdMiReg.
Independientemente "de la eficiencia"* la pregunta es si esto esta dentro de
un procedimiento almacenado y ademas esto dentro de un BEGIN TRANSACTION...
si supongamos EN LA EXAGERACION simultaneamente 500 usuarios le dan el enter
y comienzan a ejecutar este SP ¿Funcionaría?, es decir, ¿se generarían
valores DISTINTOS de IdMiReg?
...
BEGIN TRANSACTION
SELECT @NuevoNro = ISNULL(MAX(IdMiReg),0) FROM MiTabla
SET @NuevoNro = @NuevoNro + 1
INSERT INTO MiTabla ( IdBetaAfi,
Campo1
Campo2)
VALUES(
@NuevoNro,
@campo1
@campo2)
SELECT @error = @@ERROR, @NroRegsModificados = @@ROWCOUNT
IF @error != 0
BEGIN
ROLLBACK TRANSACTION
END
ELSE
BEGIN
COMMIT TRANSACTION
END
*me refiero a la eficiencia ya que podríamos tener una tabla con el nro de
siguiente registro... .etc etc... No se discute el mecanismo si si
funcionaría o no como se presenta
Leer las respuestas