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