NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosSQL Server 2005 › Capítulo 09 : 06
Quer receber novidades e e-books gratuitos?
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »
SQL Server 2005 - CURSO COMPLETO
Autor: Júlio Battisti
Lição 138 - Capítulo 09 - CHECK CONSTRAINTS

Uma CHECK Constraint permite que seja definido um conjunto ou uma faixa de valores aceitáveis para um determinado campo. Por exemplo, podemos definir que o campo Cidade somente deve aceitar os valores ‘São Paulo’, ‘Rio de Janeiro’ e ‘Belo Horizonte’. Ou podemos definir uma faixa de valores, por exemplo, uma coluna Salário deve, estar na faixa de 1000 a 5000. Este mecanismo é conhecido como Regra de Validação no Microsoft Access.

Considere o seguinte sobre CHECK Constraints:

  • É feita uma verificação dos dados toda vez que executamos um comando INSERT ou um comando UPDATE.
  • A definição da Constraint pode referenciar outras colunas na mesma tabela, porém não pode referenciar colunas de outras tabelas.
  • Não podemos definir CHECK Constraints para colunas que contenham o seguinte tipo de dados:
    • timestamp
    • IDENTITY
    • unique-identifier
  • Não pode conter sub-consultas.

Para exemplificar o uso de CHECK Constraints, vamos adicionar uma coluna financiamento, do tipo float, a nossa tabela Clientes. Depois vamos criar duas Constraints do tipo CHECK. Uma que define que o financiamento deva estar na faixa de entre 1000 e 5000 reais e outra que defina que o campo Bairro somente podem ser ‘Centro’, ‘Itararé’ ou ‘Camobi’.

Para adicionar o campo Financiamento, utilizamos o seguinte comando:

ALTER TABLE Clientes

ADD Financiamento Float

Para definir que o campo Financiamento deve ser maior ou igual a 1000 e menor ou igual a 5000, utilizamos o seguinte comando:

ALTER TABLE Clientes

ADD CONSTRAINT FaixaFinanciamento

CHECK (Financiamento>=1000 AND Financiamento<= 5000)

Vamos testar esta Constraint. Tentaremos inserir um registro, onde o Financiamento é maior do que 5000. Tentaremos executar o seguinte comando:

INSERT INTO Clientes (CPF,Nome,Endereço,fone,cidade,e_mail,empresa,financiamento)

VALUES (‘666.333.333-33’, ‘Para Pedro’, ‘XYZ’, ‘2222222’,‘Santa Maria’,‘’,‘’,7000)

Este comando não será executado e a seguinte mensagem de erro será exibida:

Msg 547, Level 16, State 0, Line 1

INSERT statement conflicted with CHECK constraint 'FaixaFinanciamento'.

The conflict occurred in database 'PubsIntF', table 'Clientes', column 'Financiamento'.

The statement has been terminated.

Agora vamos alterar o nosso comando, reduzindo o Financiamento à 3000,00. Com isso, o comando será executado com sucesso:

INSERT INTO Clientes (CPF,Nome,Endereço,fone,cidade,e_mail,empresa,financiamento)

VALUES (‘333.333.333-33’, ‘Para Pedro’, ‘XYZ’, ‘2222222’,‘Santa Maria’,‘’,‘’,3000)

Vamos adicionar um campo chamado Bairro e depois vamos definir um conjunto de valores possíveis para este campo.

Para adicionar o campo Bairro, utilizamos o seguinte comando:

ALTER TABLE Clientes

ADD Bairro Char(25)

Para definir que o campo Bairro somente deve aceitar os valores ‘Centro’, ‘Itararé’ e ‘Camobi’, utilizamos o seguinte comando:

ALTER TABLE Clientes

ADD CONSTRAINT ValoresBairro

CHECK (Bairro=‘Centro’ or Bairro=‘Itararé’ or Bairro=‘Camobi’)

Vamos testar esta Constraint. Tentaremos inserir um registro, onde o Bairro é igual a ‘Urlândia’. Tentaremos executar o seguinte comando:

INSERT INTO Clientes (CPF,Nome,Endereço,fone,cidade,e_mail,empresa,financiamento,bairro)

VALUES (‘444.444.444-44’, ‘Pedro Para’, ‘KKK’, ‘2222222’,‘Santa Maria’,‘’,‘’,2300,‘Urlândia’)

Este comando não será executado e a seguinte mensagem de erro será exibida:

Msg 547, Level 16, State 0, Line 1

INSERT statement conflicted with CHECK constraint 'ValoresBairro'.

The conflict occurred in database 'PubsIntF', table 'Clientes', column 'Bairro'.

The statement has been terminated.

Agora vamos alterar o nosso comando, alterando o bairro para ‘Centro’, que é um dos valores permitidos pela Constraint. O seguinte comando será executado com sucesso:

INSERT INTO Clientes (CPF,Nome,Endereço,fone,cidade,e_mail,empresa,financiamento,bairro)

VALUES (‘444.444.444-44’, ‘Pedro Para’, ‘KKK’, ‘2222222’,’Santa Maria’,’’,’’,2300,’Centro’)

Podemos construir CHECK Constraints mais elaboradas. Por exemplo, podemos construir uma que somente aceite o CPF se este for digitado no formato nnn.nnn.nnn-nn, onde n é um número entre 0 e 9. Vamos a um exemplo.

Definir uma Constraint que força o CPF a ser digitado o formato nnn.nnn.nnn-nn, caso contrário, o registro não será aceito. Podemos utilizar o seguinte comando:

ALTER TABLE Clientes

ADD CONSTRAINT FormatCPF

CHECK (CPF like ‘[0-9][0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]-[0-9][0-9]’)

Vamos tentar inserir um registro em que o CPF não atende a regra definida na Constraint FormatCPF. Iremos trocar o tracinho por um ponto. Tente executar o seguinte comando:

INSERT INTO Clientes (CPF,Nome,Endereço,fone,cidade,e_mail,empresa,financiamento,bairro)

VALUES (‘555.555.555.55’, ‘Maria Silva’, ‘POP’, ‘4445566’,‘Santa Maria’,‘’,‘’,2300,‘Centro’)

O comando não será executado e a seguinte mensagem de erro será emitida:

Msg 547, Level 16, State 0, Line 1

INSERT statement conflicted with CHECK constraint 'FormatCPF'.

The conflict occurred in database 'PubsIntF', table 'Clientes', column 'CPF'.

The statement has been terminated.

Também podemos utilizar os comandos sp_helpconstraint nome_tabela e sp_help nome_da_constraint para obter informações sobre uma CHECK Constraint.

« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Capa da Universidade do Access

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2025 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI