Numerador automático en consultas SQL Server
El numerador automático permite colocar un numero entero a los registros de las consultas select de SQL Server como parte del resultado.
La instrucción ROW_NUMBER agrega el valor numérico a cada registro comenzando por el 1. Esta instrucción genera un numerador temporal, por lo tanto, es posible que en cada ejecución un registro no tenga el mismo número.
Como es un numerador temporal, no se recomienda tomar este valor como identificador de registros.
Numerador automático SQL
El ROW_NUMBER se utiliza regularmente en las consultas select, veamos cómo utilizar esta instrucción en la siguiente consulta.
SELECT
ROW_NUMBER() OVER(ORDER BY FirstName ASC) AS Num,
EmployeeID,FirstName
FROM Employees
ORDER BY
FirstName ASC;
En la línea 2 vemos como se utiliza el numerador, ROW_NUMBER seguido de OVER, en over se indica el orden y la columna de la tabla.
Es necesario colocar el nombre de la una columna en over, a partir de este se enumeran los registros.
Al ejecutar la consulta anterior obtenemos el siguiente resultado.
Pueden notar que el numerador es completamente diferente al ID (identity), como se mencionó anteriormente no se recomienda tomar como valor único del registro.
Podría interesarte Procedimientos almacenados en SQL Server
Al agregar otro registro a la tabla y ejecutas nuevamente la consulta select, podrás observar que la numeración cambia.
Utiliza esta instrucción como un numerador para mostrar al usuario en la vista de la aplicación.
En el siguiente video podrás ver todo el proceso del post.