Restrição de verificação do servidor SQL

Restrição de verificação do servidor SQL

Uma restrição refere -se a uma regra que define como os dados em uma determinada coluna são aplicados. Uma restrição pode executar ações como impedir a inserção de valores nulos, impedindo a inserção de valores duplicados e mais.

Neste artigo, exploraremos uma das restrições práticas no servidor SQL chamado Check Restrint. Uma restrição de verificação é usada principalmente para garantir a integridade dos dados em uma determinada coluna.

Usando uma restrição de verificação, você pode garantir que os dados que são adicionados a uma determinada coluna avalia constantemente a um determinado valor booleano. Por exemplo, você pode adicionar uma restrição de verificação que garante que apenas os valores após uma data específica sejam adicionados a essa coluna.

Vamos discutir mais isso.

Restrição de verificação do servidor SQL

Existem duas maneiras de adicionar uma restrição de cheque a uma coluna de mesa:

  1. Durante a criação da mesa
  2. Usando o comando alter tabela na tabela existente

É sempre uma excelente prática adicionar uma restrição durante a criação de mesa. Isso garante que a regra seja aplicada a todos os dados nessa coluna.

Para ilustrar, pegue a definição de tabela que é mostrada no seguinte:

Crie usuários de tabela (
Id int Identity Key Primária,
nome de usuário varchar (100) não nulo,
Verificação de data de inscrição (Enroll_date> '2022-01-01')
);

Na tabela de exemplo dada, criamos três colunas, cada uma com seu tipo de dados e valores exclusivos. No entanto, na coluna Enroll_date, definimos a restrição de verificação que verifica se qualquer valor de data agregado a essa coluna é maior que 2022-01-01.

Começamos chamando a palavra -chave de verificação seguida pela expressão booleana que desejamos aplicar a essa coluna.

Você também pode definir um nome para a restrição usando a palavra -chave restrição. Um exemplo é o seguinte:

Crie usuários de tabela (
Id int Identity Key Primária,
nome de usuário varchar (100) não nulo,
restrição de data de inscrição verificada_date Verificação (Enroll_date> '2022-01-01')
);

Nesse caso, atribuímos o nome que é o "Verify_date" à restrição criada. Nomear uma restrição pode facilitar sua vida quando você precisa remover ou atualizar os parâmetros de restrição.

OBSERVAÇÃO: Você não pode ter restrições sem nome em seu banco de dados. Portanto, se nenhum nome for fornecido, o SQL Server gera automaticamente um nome para sua restrição.

Depois de definirmos uma restrição, podemos adicionar os dados como mostrado no seguinte:

inserir
em
usuários (nome de usuário,
Enroll_date)
valores ('user1',
'2022-01-02');

Você pode notar que a declaração de inserção anterior adere às regras de restrição na coluna Entroll_date.

No entanto, se violarmos as regras dessa restrição, o servidor SQL retornará um erro como ilustrado no seguinte:

inserir
em
usuários (nome de usuário,
Enroll_date)
valores ('user2', '2021-12-31');

Saída:

Erro SQL [547] [23000]: A declaração de inserção conflitou com a restrição de cheque "verify_date". O conflito ocorreu no banco de dados "resolvedor", tabela "DBO.Usuários ", coluna 'inscrol_date'.

Como você pode ver, o SQL Server alerta você sobre a violação de restrição pela declaração de inserção.

Modificando uma restrição existente

Para alterar a definição de uma restrição existente usando transact-sql, você deve excluir a restrição e recriá-la com as novas definições.

Adicionando uma restrição de verificação a uma tabela existente

Para adicionar uma restrição de verificação a uma tabela existente, você usa a sintaxe fornecida no seguinte:

Alterar tabela tabela_name
Adicionar restrição restrição_name verificação (restrint_definition);

Removendo uma restrição de cheque

Para remover uma restrição de verificação, você pode usar o comando ALTER TABLE, conforme mostrado no seguinte:

Alterar tabela tabela_name
Soltar restrição restant_name;

Desativando uma restrição

Você pode pular as regras de restrição sem retirar a restrição, desativando -a. A seguir, mostra a sintaxe para desativar uma restrição:

Alterar tabela tabela_name
Restrição de restrição de restrição de NOCHECK;

A sintaxe dada deve desativar a restrição para declarações de inserção e atualização.

Conclusão

Nesta postagem, exploramos como usar o trabalho com a restrição de verificação no servidor SQL. Discutimos sobre como criar uma nova restrição, como alterar uma restrição, como desativar uma restrição e como soltar uma restrição de uma mesa.