Muchas veces los clientes nos piden generar un consecutivo dinámico con un formato específico y particular cada vez que se genere un registro.
Para ello les dejo entonces el código para una tabla que se llama eventos como en se usa como valor fijo “ER-“ y el valor dinámico del consecutivo se describe en corchetes [0-9].
DECLARE @LastCode as NVarchar(200);
DECLARE @Consecutive as NVarchar(200);
DECLARE @NextValue as NVarchar(200);
DECLARE @NewCode as NVarchar(200);
set @LastCode = (SELECT Codigo FROM Eventos WHERE Codigo = (SELECT MAX(Codigo) FROM Eventos WHERE Codigo LIKE 'ER-[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
set @Consecutive = SUBSTRING(@LastCode,4,7);
set @NextValue = @Consecutive + 1;
set @NewCode = 'ER-' + @NextValue;
print @LastCode;
print @Consecutive;
print @NextValue;
print @NewCode;
ER-2000212 — Ultimo código ingresado
2000212 — valor del ultimo consecutivo
2000213 — nuevo consecutivo
ER-2000213 — nuevo código