Cuando trabajamos con SQL Server, hay momentos en los que necesitamos una columna que pueda identificar de manera única las filas en una tabla. Esta columna debe contener valores únicos y no puede tener valores NULL o vacíos. Una forma de lograr esto es utilizando la propiedad IDENTITY en SQL Server.
La propiedad IDENTITY permite que SQL Server inserte automáticamente un valor en la columna cada vez que se inserta una nueva fila en la tabla. Esto elimina la necesidad de insertar valores manualmente en la columna y ayuda a garantizar la unicidad de los datos.
Consideremos un ejemplo. Supongamos que queremos crear una tabla llamada “Estudiante” con la siguiente estructura:
CREATE TABLE Estudiante ( IdEstudiante int IDENTITY (1, 1) NOT NULL, Nombre nvarchar (200) NULL, Apellido nvarchar (200), Correo nvarchar (100) NULL )
En este ejemplo, la columna “IdEstudiante” se define como una columna de identidad. El primer argumento en la función IDENTITY especifica el valor inicial para la columna, y el segundo argumento especifica el valor de incremento utilizado para generar el siguiente valor.
Ahora, cuando insertamos una nueva fila en la tabla “Estudiante”, no necesitamos especificar un valor para la columna “IdEstudiante”. Por ejemplo:
INSERT INTO Estudiante (Nombre, Apellido, Correo) VALUES ('Vivek', 'Johari', 'vivekjohari@abc.com')
En esta instrucción INSERT, solo proporcionamos valores para las otras columnas, y SQL Server genera automáticamente un valor único para la columna “IdEstudiante”.
La propiedad IDENTITY es especialmente útil cuando necesitamos recuperar rápidamente datos de una tabla utilizando la cláusula “WHERE”. Podemos utilizar la columna de identidad como clave primaria o en otras consultas para acceder eficientemente a los datos deseados.
Sin embargo, puede haber situaciones en las que necesitemos desactivar temporalmente la propiedad IDENTITY, como al importar datos en la base de datos. Para desactivar la propiedad IDENTITY para una tabla específica, podemos utilizar el siguiente comando:
SET IDENTITY_INSERT NombreTabla OFF
Por ejemplo, si queremos desactivar la propiedad IDENTITY para la tabla “Estudiante”, usaríamos la siguiente consulta SQL:
SET IDENTITY_INSERT Estudiante OFF
Por el contrario, para activar la propiedad IDENTITY, utilizamos el siguiente comando:
SET IDENTITY_INSERT NombreTabla ON
Por ejemplo, para habilitar la propiedad IDENTITY para la tabla “Estudiante”, usaríamos:
SET IDENTITY_INSERT Estudiante ON
Además, también podemos restablecer los valores de la columna de identidad a un valor diferente utilizando el siguiente comando:
DBCC CHECKIDENT (NombreTabla, RESEED, NuevoValor)
Por ejemplo, para restablecer el valor de la columna “IdEstudiante” en la tabla “Estudiante”, ejecutaríamos el siguiente comando SQL:
DBCC CHECKIDENT (Estudiante, RESEED, 10)
En resumen, la propiedad IDENTITY en SQL Server es una característica valiosa que simplifica la gestión de identificadores únicos en las tablas. Permite una rápida recuperación de datos, especialmente en tablas sin una clave primaria. Sin embargo, es importante tener en cuenta que solo se permite una columna de identidad por tabla y el valor de la columna de identidad se restablece a 0 cuando se utiliza el comando TRUNCATE en una tabla.
Al aprovechar la propiedad IDENTITY, podemos agilizar nuestras operaciones de base de datos y garantizar la integridad de nuestros datos.