Compartir a través de


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

  1. 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.

  2. En el menú Diseñador de tablas , seleccione Índices o claves.

  3. En el cuadro de diálogo Índices o claves, seleccione Agregar.

  4. 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.

  5. En el menú Archivo, seleccione Guardar nombre de tabla.

Usar Transact-SQL

Creación de una restricción única con Transact-SQL

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra Estándar, seleccione Nueva consulta.

  3. 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 columna TransactionID.

    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

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra Estándar, seleccione Nueva consulta.

  3. 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 y PasswordSalt en la tabla Person.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

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra Estándar, seleccione Nueva consulta.

  3. 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

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra Estándar, seleccione Nueva consulta.

  3. 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 son NULL.

    USE AdventureWorks2022;  
    GO
    CREATE UNIQUE INDEX UQ_AdventureWorksDWBuildVersion
    ON dbo.AdventureWorksDWBuildVersion (DBVersion)
    WHERE (DBVersion IS NOT NULL);
    GO