Um guia para restrições UNIQUE no Microsoft SQL Server

Ao criar um UNIQUE limitação, Os administradores do SQL Server especificam que uma coluna do banco de dados não pode conter valores duplicados. Quando você cria um novo UNIQUE limitação, O SQL Server verifica a coluna em questão para determinar se ela contém valores duplicados. Se o tabela contém duplicatas, o comando de criação de restrição falha. Da mesma forma, depois de definir uma restrição UNIQUE em uma coluna, as tentativas de adicionar ou modificar dados que causariam a existência de duplicatas também falham.

Código SQL em um fundo preto.
KIVILCIM PINAR / Getty Images

Por que usar restrições UNIQUE

Uma restrição UNIQUE e uma chave primária impõem exclusividade, mas há momentos em que uma restrição UNIQUE é a melhor escolha.

  • Use uma restrição UNIQUE para especificar várias restrições a uma tabela. Você só pode anexar uma chave primária a uma tabela.
  • Use uma restrição UNIQUE quando uma coluna permitir valores nulos. As restrições de chave primária só podem ser anexadas a colunas que não permitem valores nulos.
instagram viewer

Criando uma restrição UNIQUE

A maneira mais fácil de criar uma restrição exclusiva no Transact-SQL é conectar-se a um Mecanismo de Banco de Dados no Pesquisador de Objetos no SQL Management Studio e clicar em Nova Consulta.

Use a seguinte consulta, modificando os termos conforme necessário, para criar uma nova tabela e adicionar uma restrição em uma coluna:

USE AdventureWorks2012; 
VAI
CRIAR TABELA Produção. TransactionHistoryArchive4
(
TransactionID int NOT NULL,
CONSTRAINT AK_TransactionID UNIQUE (TransactionID)
);
VAI.

Execute a consulta.

Da mesma forma, para criar uma restrição única em uma tabela existente, execute a seguinte consulta T-SQL:

USE AdventureWorks2012; 
VAI
ALTER TABLE Pessoa. Senha
ADICIONE CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt);
VAI.

Restrições UNIQUE vs. Índices ÚNICOS

Tem havido alguma confusão sobre a diferença entre uma restrição UNIQUE e um índice UNIQUE. Embora você possa usar diferentes comandos T-SQL para criá-los (ALTER TABLE e ADD CONSTRAINT para restrições e CREATE UNIQUE INDEX para índices), eles têm o mesmo efeito, na maior parte. Na verdade, quando você cria uma restrição UNIQUE, ela na verdade cria um índice UNIQUE na tabela. No entanto, observe várias diferenças:

  • Ao criar um índice, você pode adicionar opções adicionais ao comando de criação.
  • Uma coluna sujeita a uma restrição UNIQUE pode ser usada como um chave estrangeira.
instagram story viewer