Generar consecutivos dinámicos Sql Server


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

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s