Creación de restricciones únicas
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Database Azure SQL Managed Instance
Puede crear una restricción UNIQUE en SQL Server usando SQL Server Management Studio o Transact-SQL para asegurarse de que no se escriban valores duplicados en columnas específicas que no participan en una clave principal. Crear una restricción UNIQUE crea automáticamente un índice único correspondiente.
Nota:
Vea Clave principal, clave externa y clave única en Azure Synapse Analytics para obtener información sobre las restricciones únicas en Azure Synapse Analytics.
Permisos
Requiere el permiso ALTER en la tabla.
Usar SQL Server Management Studio (SSMS)
Creación de una restricción única con SSMS
En el Explorador de objetos, haga clic con el botón derecho en la tabla a la que quiera agregar una restricción única y seleccione Diseño.
En el menú Diseñador de tablas , seleccione Índices o claves.
En el cuadro de diálogo Índices o claves, seleccione Agregar.
En la cuadrícula situada debajo de General, seleccione Tipo, elija Clave única en el cuadro de lista desplegable situado a la derecha de la propiedad y, después, seleccione Cerrar.
En el menú Archivo, seleccione Guardar nombre de tabla.
Usar Transact-SQL
Creación de una restricción única con Transact-SQL
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
En la barra Estándar, seleccione Nueva consulta.
Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione Ejecutar. El ejemplo crea la tabla
TransactionHistoryArchive4
y crea una restricción UNIQUE en la columnaTransactionID
.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive4 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
Creación de una restricción UNIQUE en una tabla existente
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
En la barra Estándar, seleccione Nueva consulta.
Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione Ejecutar. El ejemplo crea una restricción UNIQUE en las columnas
PasswordHash
yPasswordSalt
en la tablaPerson.Password
.USE AdventureWorks2022; GO ALTER TABLE Person.Password ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt); GO
Creación de una restricción UNIQUE en una tabla nueva
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
En la barra Estándar, seleccione Nueva consulta.
Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione Ejecutar. El ejemplo crea una tabla y define una restricción UNIQUE en la columna
TransactionID
.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive2 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
Creación de una restricción UNIQUE en una columna que admite un valor NULL
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
En la barra Estándar, seleccione Nueva consulta.
Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione Ejecutar. En el ejemplo se crea una restricción UNIQUE filtrada mediante la sintaxis
CREATE UNIQUE INDEX
, que solo aplica unicidad en valores que no sonNULL
.USE AdventureWorks2022; GO CREATE UNIQUE INDEX UQ_AdventureWorksDWBuildVersion ON dbo.AdventureWorksDWBuildVersion (DBVersion) WHERE (DBVersion IS NOT NULL); GO