Aquí veremos cómo agregar una restricción de clave única a una columna (s) de la base de datos de un servidor MS SQL con la ayuda de una consulta SQL usando la cláusula ALTER.
Para fines de demostración, crearemos una tabla de demostración en una base de datos llamada «geeks».
Creación de la base de datos:
Use la siguiente instrucción SQL para crear una base de datos llamada geeks :
CREATE DATABASE geeks;
Uso de la base de datos:
Use la siguiente instrucción SQL para cambiar el contexto de la base de datos a geeks :
USE geeks;
Definición de la tabla:
Tenemos la siguiente tabla de demostración en nuestra base de datos de geeks .
CREATE TABLE demo( ID INT IDENTITY(1,1) PRIMARY KEY, --IDENTITY(1,1) is same as AUTO_INCREMENT in MySQL. --Starts from 1 and increases by 1 with each inserted row. NAME VARCHAR(30) NOT NULL, PHONE VARCHAR(10) NOT NULL );
Puede usar la siguiente declaración para consultar la descripción de la tabla creada:
EXEC SP_COLUMNS demo;
Agregando datos a la tabla:
Use la siguiente declaración para agregar datos a la tabla de demostración:
INSERT INTO demo --no need to mention columns explicitly as we are inserting into all columns and ID gets --automatically incremented. VALUES ('Yogesh Vaishnav', '000000001'), ('Ajit Yadav', '000000002'), ('Ashish Yadav', '000000003'), ('Vishal Vishwakarma', '000000004'), ('Suhana Shaikh', '000000005');
Para verificar el contenido de la tabla, use la siguiente declaración:
SELECT * FROM demo;
Ahora agreguemos una restricción de clave única a la columna de teléfono como número de teléfono. debería ser único.
NOTA: Puede haber varias columnas de clave única , pero solo una columna de clave principal en una tabla de base de datos.
La sintaxis para agregar la restricción de clave única a columnas únicas y múltiples se proporciona a continuación:
Sintaxis:
–Agregar restricción de clave única a una columna.
ALTER TABLE <nombre_tabla>
AGREGAR ÚNICO (<nombre_columna>);
–Agregar restricción de clave única a múltiples columnas
ALTER TABLE <nombre_tabla>
ADD CONSTRAINT <identifier_name> UNIQUE (<column_name1>, <column_name2>,…);
Ejemplo :
ALTER TABLE demo ADD UNIQUE (PHONE); --Let's insert a row into the table. INSERT INTO demo VALUES ('GeeksforGeeks','000000001'); --error
Como la string ‘000000001’ ya existe en la columna del teléfono que ahora tiene una restricción de clave única, por lo tanto, cuando se ejecuta la consulta anterior, se produce un error.
Por lo tanto, podemos decir que la restricción de clave única se ha aplicado con éxito.