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
« Lição anterior | ![]() |
Δ Página principal | ![]() |
¤ Capítulos | ![]() |
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:
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 | ![]() |
Δ Página principal | ![]() |
¤ Capítulos | ![]() |
Próxima lição » |
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
Aplica-se ao Access 2019, 2016, 2013 e 2010!
Para todos os detalhes, acesse:
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