Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Depois de criar e preencher uma tabela, pode ser necessário modificar seu design. Para fazer isso, use a instrução ALTER TABLE . Observe que alterar a estrutura de uma tabela existente pode causar a perda de parte dos dados. Por exemplo, alterar o tipo de dados de um campo pode resultar na perda de dados ou em erros de arredondamento, dependendo dos tipos de dados que esteja usando. Esta ação pode também causar a interrupção de outras partes do aplicativo, que podem fazer referência ao campo alterado. Tenha sempre cuidado redobrado na hora de modificar a estrutura de uma tabela existente.
Com a instrução ALTER TABLE, você pode adicionar, remover ou alterar uma coluna ou campo, além de adicionar ou remover uma restrição. Você pode também declarar um valor padrão para um campo; no entanto, pode alterar apenas um campo de cada vez. Digamos que você tenha um banco de dados de notas fiscais e deseja adicionar um campo à tabela Clientes. Para adicionar um campo com a instrução ALTER TABLE, use a cláusula ADD COLUMN com o nome do campo, o respectivo tipo de dados e o tamanho do tipo de dados, quando for necessário.
ALTER TABLE tblCustomers
ADD COLUMN Address TEXT(30)
Para alterar o tipo de dados ou o tamanho de um campo, use a cláusula ALTER COLUMN com o nome do campo, o tamanho e o tipo de dados desejado, quando for necessário.
ALTER TABLE tblCustomers
ALTER COLUMN Address TEXT(40)
Se você quiser alterar o nome de um campo, precisará remover o campo e recriá-lo. Para remover um campo, use a cláusula DROP COLUMN apenas com o nome do campo.
ALTER TABLE tblCustomers
DROP COLUMN Address
Observe que o uso deste método elimina os dados existentes de um campo. Para manter os dados existentes, altere o nome do campo com o modo de design de tabela da interface do usuário do Access ou grave o código para manter os dados atuais em uma tabela temporária e acrescente-o novamente na tabela renomeada. Um valor padrão é o valor inserido em um campo, sempre que um novo registro é adicionado a uma tabela e nenhum valor é especificado para essa coluna em particular. Para definir um valor padrão de um campo, use a palavra-chave DEFAULT, após declarar o tipo de campo na cláusula ADD COLUMN ou ALTER COLUMN.
ALTER TABLE tblCustomers
ALTER COLUMN Address TEXT(40) DEFAULT Unknown
Observe que o valor padrão não é colocado entre aspas simples. Quando for o caso, as aspas também são inseridas no registro. A palavra-chave DEFAULT também pode ser usada em uma instrução CREATE TABLE .
CREATE TABLE tblCustomers (
CustomerID INTEGER CONSTRAINT PK_tblCustomers
PRIMARY KEY,
[Last Name] TEXT(50) NOT NULL,
[First Name] TEXT(50) NOT NULL,
Phone TEXT(10),
Email TEXT(50),
Address TEXT(40) DEFAULT Unknown)
Observação
A instrução DEFAULT pode ser executada somente através do provedor OLE DB e do ADO. Ela retorna uma mensagem de erro, quando usada por meio da interface do usuário no modo SQL do Access.
Restrições
As restrições podem ser usadas para estabelecer chaves primárias e integridade referencial, e para restringir os valores que podem ser inseridos em um campo. De modo geral, as restrições são usadas para manter a integridade e a consistência dos dados no banco de dados.
Há dois tipos de restrições: a restrição de campo único ou no nível do campo e a restrição de vários campos ou no nível da tabela. Os dois tipos de restrições podem ser usados na instrução CREATE TABLE ou na ALTER TABLE.
A restrição de campo único, também conhecida como instrução no nível da coluna, é declarada com o campo em si, depois que o campo e o tipo de dados forem declarados. Por exemplo, use a tabela Clientes e crie uma chave primária de campo único no campo CustomerID. Para adicionar uma restrição, use a palavra-chave CONSTRAINT com o nome do campo.
ALTER TABLE tblCustomers
ALTER COLUMN CustomerID INTEGER
CONSTRAINT PK_tblCustomers PRIMARY KEY
Observe que o nome da restrição é determinado. Você pode usar um atalho para declarar a chave primária que omite totalmente a cláusula CONSTRAINT.
ALTER TABLE tblCustomers
ALTER COLUMN CustomerID INTEGER PRIMARY KEY
No entanto, o uso do método de atalho faz com que o Access gere um nome para a restrição de forma aleatória, o que dificulta fazer a referência no código. É uma boa ideia sempre nomear suas restrições.
Para eliminar uma restrição, use a cláusula DROP CONSTRAINT com a instrução ALTER TABLE e forneça um nome para a restrição.
ALTER TABLE tblCustomers
DROP CONSTRAINT PK_tblCustomers
As restrições podem ser usadas também para restringir os valores permitidos para um campo. Você pode restringir os valores para NOT NULL ou UNIQUE, ou definir uma restrição CHECK, que é um tipo de regra comercial, que pode ser aplicada a um campo. Digamos que você deseja restringir os valores dos campos Nome e Sobrenome para que seja um valor único, o que significa que nunca deve haver uma combinação de nome e sobrenome, que sejam iguais em dois registros na tabela. Como se trata de uma restrição de vários campos, ela é declarada no nível da tabela, e não no nível do campo. Use a cláusula ADD CONSTRAINT e defina uma lista de vários campos.
ALTER TABLE tblCustomers
ADD CONSTRAINT CustomerID UNIQUE
([Last Name], [First Name])
A restrição CHECK é um recurso avançado do SQL, que permite adicionar uma validação de dados em uma tabela, criando uma expressão que faz referência a um único campo ou a vários campos, em uma ou mais tabelas. Digamos que você deseja verificar se os valores inseridos em um registro de nota fiscal são sempre superiores a R$ 0,00. Para fazê-lo, use uma restrição CHECK, declarando a palavra-chave CHECK e a expressão de validação na cláusula ADD CONSTRAINT de uma instrução ALTER TABLE.
ALTER TABLE tblInvoices
ADD CONSTRAINT CheckAmount
CHECK (Amount > 0)
A expressão usada para definir uma restrição de verificação também pode se referir a mais de um campo na mesma tabela ou a campos em outras tabelas e pode usar todas as operações válidas no MICROSOFT Access SQL, como instruções SELECT , operadores matemáticos e funções de agregação. A expressão que define a restrição de verificação não pode ter mais de 64 caracteres.
Digamos que você deseja verificar o limite de crédito dos clientes, antes de adicioná-los à respectiva tabela. Crie uma restrição usando a instrução ALTER TABLE com as cláusulas ADD COLUMN e CONSTRAINT , que vai buscar o valor na tabela CreditLimit para verificar o limite de crédito dos clientes. Use as seguintes instruções do SQL para criar a tabela tblCreditLimit, adicionar o campo CustomerLimit à tabela tblCustomers, adicionar a restrição CHECK à tabela tblCustomers e testar a restrição CHECK.
CREATE TABLE tblCreditLimit (
Limit DOUBLE)
INSERT INTO tblCreditLimit
VALUES (100)
ALTER TABLE tblCustomers
ADD COLUMN CustomerLimit DOUBLE
ALTER TABLE tblCustomers
ADD CONSTRAINT LimitRule
CHECK (CustomerLimit <= (SELECT Limit
FROM tblCreditLimit))
UPDATE TABLE tblCustomers
SET CustomerLimit = 200
WHERE CustomerID = 1
Lembre-se de que ao executar a instrução UPDATE TABLE , você recebe uma mensagem indicando que a atualização não foi bem-sucedida porque ela violou a restrição de verificação. Quando você atualiza o campo CustomerLimit para um valor igual ou inferior a 100, a atualização é bem-sucedida.
Atualizações e exclusões em cascata
As restrições podem ser usadas para estabelecer a integridade referencial entre tabelas de banco de dados. A integridade referencial significa que os dados são consistentes e não corrompidos. Por exemplo, quando você exclui um registro de cliente, mas o registo de remessa desse cliente permanece no banco de dados, os dados ficam inconsistentes, já que você passa a ter um registro órfão na tabela de remessas. A integridade referencial é estabelecida quando você cria uma relação entre tabelas.
Além de estabelecer a integridade referencial, você pode também garantir que os registros das tabelas referenciadas permaneçam em sincronia, através do uso das atualizações e exclusões em cascata. Por exemplo, quando as atualizações e exclusões em cascata são declaradas, se você excluir o registro do cliente, o respectivo registo de remessa é excluído automaticamente.
Para habilitar as atualizações e exclusões em cascata, use as palavras-chave ON UPDATE CASCADE e/ou ON DELETE CASCADE, na cláusula CONSTRAINT de uma instrução ALTER TABLE. Elas devem ser aplicadas a uma chave estrangeira.
ALTER TABLE tblShipping
ADD CONSTRAINT FK_tblShipping
FOREIGN KEY (CustomerID) REFERENCES
tblCustomers (CustomerID)
ON UPDATE CASCADE
ON DELETE CASCADE
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.