Herramientas

Agregar un ID en una tabla en SQL Server existente asignando un valor autonumérico

En las tablas de las bases de datos, a menudo nos podemos encontrar con la necesidad de disponer de un ID único para identificar cada de las filas. Si la tabla contiene un ID, todo está bien, pero puede ser que no se hubiese incluido en su diseño. Los ID únicos son necesarios para múltiples aplicaciones, desde mejorar la capacidad de búsqueda hasta la manipulación de datos. En esta entrada, se explicará cómo agregar un ID en una tabla de SQL Server existentes utilizando para ello la función ROW_NUMBER().

Planteamiento del problema

Si se necesita un ID para trabajar con una tabla de una base de datos, lo normal es incluir este en la fase de diseño. Pero no siempre es así. Puede ser que al diseñar la base de datos no fuese necesario este campo o que la tabla sea heredada.

Imaginemos que tenemos la TablaOriginal en una base de datos SQL Server. Esta tabla contiene datos con los que es necesario trabajar, pero no contiene un identificador único para cada una de las filas. Lo que es un obstáculo si se desea actualizar los valores. La solución es agregar un ID, para lo que se puede usar la función ROW_NUMBER().

Solución: Creando un ID autonumérico con ROW_NUMBER()

La función ROW_NUMBER() de SQL Server permite asignar un número de fila único a cada uno de los resultados de una consulta. Siendo especialmente útil para la creación de identificadores únicos. Así, para la creación de un ID único en la tabla TablaOriginal se puede usar la siguiente consulta:

SELECT
    ROW_NUMBER() OVER (ORDER BY columna_orden) AS ID,
    *
INTO TablaConID
FROM TablaOriginal;

En donde:

  • ROW_NUMBER() asigna un número de fila único a cada fila de TablaOriginal.
  • ORDER BY columna_orden especifica el orden en el que se enumeran las filas. Reemplazado columna_orden por la columna que se desea usar para la ordenación.
  • INTO TablaConID crea una nueva tabla llamada TablaConID que contiene el ID autonumérico junto con todas las columnas de TablaOriginal.

Creación de una vista con el ID autonumérico:

Si no se puede, o no se quiere crear una tabla con una copia de los datos originales, también se puede crear una vista para obtener una versión de TablaOriginal con un ID. La forma más sencilla para conseguir esto es ejecutando una consulta como el que se muestra a continuación:

CREATE VIEW VistaConID AS
SELECT
    ROW_NUMBER() OVER (ORDER BY columna_orden) AS ID,
    *
FROM TablaOriginal;

La vista VistaConID es una forma alternativa para acceder los datos de TablaOriginal con un ID autonumérico sin la necesidad de copiar los datos. Aunque, al ser una vista, puede tener algunos problemas de rendimiento respecto a una tabla. Además, se debe tener en cuenta que en la vista los valores de los ID pueden cambiarán cuando se agregan o eliminan datos en TablaOriginal.

Conclusiones

En esta entrada se han visto dos opciones para agregar un ID en una tabla en SQL Server existente. Usando en ambos casos la función ROW_NUMBER(). En primer lugar, se puede crear una nueva tabla con una consulta en la que se agrega esta función, lo que obliga a copiar todos los datos de la tabla original. Si no se desea, o no es posible, copiar los datos, se puede crear una vista con la misma consulta para obtener una versión de la tabla original con un ID autonumérico.

Imagen de bvick390 en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado

Un modelo de credit scoring no es un artefacto estático. Se construye en un momento…

5 horas ago

Los indicadores que se autocumplen, o cuando medir es modificar – El bestiario de los indicadores económicos absurdos (parte 7)

En las seis entregas anteriores hemos paseado por casi todos los géneros del disparate económico:…

5 días ago

Customer Lifetime Value: la fórmula clásica que todo analista debería dominar

El Customer Lifetime Value (CLV) es, probablemente, la métrica más importante que puede calcular una…

1 semana ago

Analytics Lane lanza la versión 1.4 del laboratorio con nuevas herramientas de conversión y modelos avanzados de CLV

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.4, que…

2 semanas ago

Lanzamos el video de ScoreFlow: crea scorecards de crédito de forma ágil y sin IT

En Analytics Lane seguimos apostando por desarrollar herramientas que simplifiquen el trabajo de analistas y…

2 semanas ago

This website uses cookies.