Restrição única do servidor SQL

Restrição única do servidor SQL

Um dos mais frustrantes para um usuário de banco de dados é encontrar entradas duplicadas em uma mesa. Embora existam alguns casos em que ter valores duplicados pode ser uma necessidade, isso raramente acontece.

Portanto, em vez de voltar para sua mesa para filtrar e remover os registros duplicados, é bom evitar o problema em primeiro lugar.

Felizmente, não é um empreendimento enorme, pois, graças à restrição única no servidor SQL, você pode garantir que os dados em uma determinada coluna sejam únicos e não existem valores duplicados.

Junte -se a nós enquanto aprendemos o que a restrição única faz.

Restrição única do servidor SQL

É bom pensar na funcionalidade da restrição única. Depois de criar uma restrição única, o SQL Server cria automaticamente um índice exclusivo para a operação. Isso garante que o mecanismo de banco de dados possa aplicar a singularidade dos dados, conforme definido pela restrição.

Vamos explorar como podemos usar a restrição única.

SQL Server Crie uma tabela com restrição exclusiva

A consulta a seguir fornecida cria uma tabela com restrições únicas:

soltar o banco de dados se existir rede;
criar rede de banco de dados;
use rede de rede;
Crie informações de tabela (
Id int não é a chave primária de identidade nula,
nome de usuário Varchar (50),
ip_address varchar (50) não nulo exclusivo,
país varchar (50) não nulo,
navegador varchar (50) nulo padrão,
bytes no padrão nulo 0
);

As declarações anteriores definem a coluna ip_address como exclusiva. Isso garante que apenas uma entrada com o mesmo IP seja adicionada à tabela.

Você também pode definir uma coluna como exclusiva, conforme mostrado no seguinte:

Crie informações de tabela (
Id int não é a chave primária de identidade nula,
nome de usuário Varchar (50),
ip_address varchar (50) não nulo,
país varchar (50) não nulo,
navegador varchar (50) nulo padrão,
bytes no padrão nulo 0,
Único (ip_address)
);

Depois de termos a tabela com uma restrição única, podemos adicionar um novo registro da seguinte forma:

Insira em informações (nome de usuário, ip_address, país, navegador, bytes)
Valores ('Croosbar', '88.241.248.129 ',' Us ',' Mozilla ', 34000),
('Codeyer', '219.199.7.49 ',' de ',' Chrome ', 5648);

A declaração de inserção anterior adiciona dois registros à tabela.

Se executarmos novamente a declaração anterior, o servidor SQL retornará um erro.

Violação da restrição chave exclusiva 'uq__informat__5376bcc424ce6277'. Não é possível inserir a chave duplicada no objeto 'DBO.Informação'. O valor da chave duplicado é (88.241.248.129).

Nesse caso, o servidor SQL indica que a declaração de inserção anterior viola as regras da restrição exclusiva.

Servidor SQL Defina uma restrição exclusiva para várias colunas

Você também pode atribuir uma restrição exclusiva a mais de uma coluna, conforme fornecido na seguinte sintaxe:

Crie Table Table_name (
col_1,
col_2,
.. ,
col_n,
Único (col_1, col_2,… col_n)
);

SQL Server Defina restrição exclusiva para a tabela existente

Para adicionar uma restrição única a uma tabela existente, você pode usar o comando ALTER TABLE, como mostrado na seguinte sintaxe:

Alterar tabela tabela_name
Adicione a restrição de restrição_name
Exclusivo (Column1, Column2,…);

Por exemplo:

alterar as informações da tabela
Adicionar restrição exclusiva_ip exclusiva (ip_address);

A consulta anterior adiciona uma restrição única à coluna IP_Address.

SQL Server soltar restrição exclusiva

Você pode remover uma restrição exclusiva existente usando o comando ALTER TABLE da seguinte forma:

Alterar tabela tabela_name
Soltar restrição restant_name;

Exemplo:

Alterar as informações da tabela
Soltar restrição uniquq_ip;

Lembre -se de que você não pode fazer modificações em uma restrição única existente. Portanto, para alterar uma restrição atual, você precisa abandoná-la e depois recriá-la com novas definições.

Conclusão

Obrigado por se juntar a nós neste tutorial. Este guia explicou o básico de trabalhar com as restrições exclusivas em um servidor SQL.

Obrigado pela leitura. Vejo você em nosso próximo tutorial!