Una guía de restricciones ÚNICAS en Microsoft SQL Server

Creando un ÚNICO restricción, Los administradores de SQL Server especifican que una columna de la base de datos no puede contener valores duplicados. Cuando creas un nuevo ÚNICO restricción, SQL Server comprueba la columna en cuestión para determinar si contiene valores duplicados. Si el mesa contiene duplicados, el comando de creación de restricciones falla. De manera similar, después de definir una restricción ÚNICA en una columna, los intentos de agregar o modificar datos que causarían la existencia de duplicados también fallan.

Código SQL sobre fondo negro.
KIVILCIM PINAR / Getty Images

Por qué utilizar restricciones ÚNICAS

Una restricción ÚNICA y una clave principal imponen la unicidad, pero hay ocasiones en las que una restricción ÚNICA es la mejor opción.

  • Utilice una restricción ÚNICA para especificar varias restricciones a una tabla. Solo puede adjuntar una clave principal a una tabla.
  • Utilice una restricción ÚNICA cuando una columna permita valores nulos. Las restricciones de clave primaria solo se pueden adjuntar a columnas que no permiten valores nulos.
instagram viewer

Creando una restricción ÚNICA

La forma más sencilla de crear una restricción única en Transact-SQL es conectarse a un motor de base de datos en el Explorador de objetos en SQL Management Studio y luego hacer clic en Nueva consulta.

Utilice la siguiente consulta, modificando los términos según sea necesario, para crear una nueva tabla y agregar una restricción en una columna:

USE AdventureWorks2012; 
IR
CREAR MESA Producción. TransactionHistoryArchive4
(
TransactionID int NOT NULL,
CONSTRAINT AK_TransactionID UNIQUE (TransactionID)
);
IR.

Ejecute la consulta.

De manera similar, para crear una restricción única en una tabla existente, ejecute la siguiente consulta T-SQL:

USE AdventureWorks2012; 
IR
ALTER TABLE Persona. Contraseña
AÑADIR RESTRICCIÓN AK_Password UNIQUE (PasswordHash, PasswordSalt);
IR.

Restricciones ÚNICAS vs. Índices ÚNICOS

Ha habido cierta confusión sobre la diferencia entre una restricción ÚNICA y un índice ÚNICO. Si bien puede usar diferentes comandos T-SQL para crearlos (ALTER TABLE y ADD CONSTRAINT para restricciones y CREATE UNIQUE INDEX para índices), tienen el mismo efecto, en su mayor parte. De hecho, cuando crea una restricción ÚNICA, en realidad crea un índice ÚNICO en la tabla. Sin embargo, tenga en cuenta varias diferencias:

  • Cuando crea un índice, puede agregar opciones adicionales al comando de creación.
  • Una columna sujeta a una restricción ÚNICA se puede utilizar como clave externa.