Partilhar via


Criar restrições exclusivas

Aplica-se a: SQL Server 2016 (13.x) e posterior Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Você pode criar uma restrição exclusiva no SQL Server usando o SQL Server Management Studio ou o Transact-SQL para assegurar que nenhum valor duplicado seja digitado em colunas específicas que não integram uma chave primária. Criar uma restrição exclusiva cria automaticamente um índice exclusivo correspondente.

Observação

Para obter informações sobre restrições exclusivas no Azure Synapse Analytics, consulte Chave primária, chave estrangeira e chave exclusiva no Azure Synapse Analytics.

Permissões do

Exige a permissão ALTER na tabela.

Usar SSMS (SQL Server Management Studio)

Criar uma restrição exclusiva usando o SSMS

  1. No Pesquisador de Objetos, clique com o botão direito do mouse na tabela à qual você deseja adicionar uma restrição exclusiva e selecione Design.

  2. No menu Designer de Tabela , selecione Índices/Chaves.

  3. Na caixa de diálogo Índices/Chaves, selecione Adicionar.

  4. Na grade em Geral, selecione Tipo e Chave exclusiva, na caixa de lista suspensa à direita da propriedade e clique em Close.

  5. No menu Arquivo, selecione Salvar nome da tabela.

Usar o Transact-SQL

Criar uma restrição exclusiva usando o Transact-SQL

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, selecione Nova consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar. O exemplo cria a tabela TransactionHistoryArchive4 e cria uma restrição exclusiva na coluna TransactionID.

    USE AdventureWorks2022;  
    GO  
    CREATE TABLE Production.TransactionHistoryArchive4  
     (  
       TransactionID int NOT NULL,   
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID)   
    );   
    GO  
    

Criar uma restrição exclusiva em uma tabela existente

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, selecione Nova consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar. O exemplo cria uma restrição exclusiva nas colunas PasswordHash e PasswordSalt na tabela Person.Password.

    USE AdventureWorks2022;   
    GO  
    ALTER TABLE Person.Password   
    ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt);   
    GO  
    
    

Criar uma restrição única em uma nova tabela

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, selecione Nova consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar. O exemplo cria uma tabela e define uma restrição exclusiva na coluna TransactionID.

    USE AdventureWorks2022;  
    GO  
    CREATE TABLE Production.TransactionHistoryArchive2  
    (  
       TransactionID int NOT NULL,  
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID)  
    );  
    GO  
    

Criar uma restrição exclusiva em uma coluna anulável

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados.

  2. Na barra Padrão, selecione Nova consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar. O exemplo cria uma restrição exclusiva filtrada usando a sintaxe CREATE UNIQUE INDEX, impondo apenas exclusividade em não valores NULL.

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