ALTER e DROP TABLE – Alterar e Excluir Tabelas e Colunas – Curso de SQL Server – 07

Alterar e Excluir Tabelas e Colunas no SQL Server

Vamos aprender agora a alterar e excluir tabelas e colunas com SQL no Microsoft SQL Server.
Para isso usaremos dois comandos: ALTER TABLE e DROP TABLE.

Comando ALTER TABLE

É possível alterar a estrutura de uma tabela após ter sido criada, acrescentando ou excluindo atributos (campos). A sintaxe básica para essa operação é como segue:

ALTER TABLE tabela
 ação coluna;

Vejamos a sintaxe básica para cada ação com ALTER TABLE:

Adicionar uma coluna à tabela:

ALTER TABLE nome_tabela ADD nome_coluna tipo_dados;

Excluir uma coluna de uma tabela:

ALTER TABLE nome_tabela DROP COLUMN nome_coluna;

Alterar o tipo de dados de uma coluna:

ALTER TABLE nome_tabela ALTER COLUMN nome_coluna tipo_dados;

Adicionar uma constraint do tipo NOT NULL a uma coluna:

ALTER TABLE nome_tabela ALTER COLUMN nome_coluna tipo_dados NOT NULL;

Alterar uma tabela para adicionar uma constraint de chave primária a uma coluna:

ALTER TABLE nome_tabela ADD CONSTRAINT nome_constraint PRIMARY KEY (coluna1, coluna2, ...); 

Excluir uma constraint de uma tabela:

ALTER TABLE nome_tabela DROP CONSTRAINT nome_constraint;

Exemplos

1 – Excluir a coluna ID_Autor da tabela tbl_livros:

ALTER TABLE tbl_livros
DROP COLUMN ID_Autor;

2 – Adicionar a coluna ID_Autor à tabela tbl_livros e configurá-la como chave estrangeira da coluna ID_Autor da tabela tbl_autores:

ALTER TABLE tbl_livros
ADD ID_Autor SMALLINT NOT NULL
CONSTRAINT fk_ID_Autor FOREIGN KEY (ID_Autor) REFERENCES tbl_autores (ID_autor);

3 – Adicionar a coluna ID_editora à tabela tbl_livros e configurá-la como chave estrangeira da coluna ID_editora da tabela tbl_editoras:

ALTER TABLE tbl_livros
ADD ID_editora SMALLINT NOT NULL
CONSTRAINT fk_id_editora FOREIGN KEY (ID_editora) REFERENCES tbl_editoras (ID_editora) ON DELETE CASCADE;

4 – Alterando o tipo de dados da coluna ID_Autor para SMALLINT:

ALTER TABLE tbl_livros
ALTER COLUMN ID_Autor SMALLINT;

5 – Adicionando a constraint PRIMARY KEY á coluna ID_Cliente (já existente) da tabela Clientes:

ALTER TABLE Clientes
ADD CONSTRAINT pk_id_cliente PRIMARY KEY (ID_Cliente);

Comando DROP TABLE

Usamos o comando DROP TABLE para excluir uma tabela do banco de dados, incluindo todos os seus dados.

Sintaxe:

DROP TABLE nome_tabela;

Exemplo:

DROP TABLE Clientes;

Exercício para Fixação

Tente fazer o seguinte exercício sozinho. A resolução sugerida está na sequência:

1. Criar uma nova tabela no banco de dados db_Biblioteca, para armazenar gêneros dos livros. Sugestão de nome: tbl_generos

2. Criar uma nova coluna na tabela de livros para realizar o relacionamento com a tabela de gêneros.

3. Inserir um novo registro de livro no banco. Atenção: inserir antes quaisquer editoras, autores e gêneros necessários. Pesquise um livro que você gosta para realizar esse cadastro.

4. Verifique se os dados foram inseridos com sucesso usando o comando:
SELECT * FROM nome_tabela;

RESOLUÇÃO

CREATE TABLE tbl_generos (
ID_Genero Tinyint IDENTITY,
Genero VARCHAR(25)
CONSTRAINT pk_id_genero PRIMARY KEY (ID_Genero)
);

ALTER TABLE tbl_livros
ADD ID_Genero Tinyint
CONSTRAINT fk_id_genero FOREIGN KEY (ID_Genero)
REFERENCES tbl_generos (ID_Genero) ON DELETE CASCADE;

INSERT INTO tbl_generos (Genero)
VALUES 
('Ficção'),
('Romance'),
('Aventura'),
('Técnico'),
('Suspense');

INSERT INTO tbl_autores (ID_Autor, Nome_Autor)
VALUES (6, 'Daniel Defoe');

INSERT INTO tbl_editoras (Nome_Editora)
VALUES
('Penguin Classics');

INSERT INTO tbl_Livros (Nome_Livro, ISBN, Data_Pub,
Preco_Livro, ID_Autor, ID_editora, ID_Genero)
VALUES
('As Aventuras de Robinson Crusoé','98653696912','18700509', 32.50, 6, 10,3);

SELECT * FROM tbl_livros;
Exercício de SQL Server - comando ALTER TABLE

Resultado do Exercício com ALTER TABLE

O livro foi inserido com sucesso. Note que os livros inseridos anteriormente não possuem gênero cadastrado, sendo mostrado o valor NULL (nulo), mas é possível adicionar esse dado a eles usando a cláusula SQL UPDATE, que estudaremos nas próximas lições.

Dúvidas? Assista a um vídeo da Bóson Treinamentos sobre o assunto:

 


 

Sobre Fábio dos Reis (1193 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

13 Comentários em ALTER e DROP TABLE – Alterar e Excluir Tabelas e Colunas – Curso de SQL Server – 07

  1. Sidney Pedro da Silva // 20/06/2013 em 9:54 // Responder

    Olá Prof. Reis,
    Gostaria de saber onde será usado o nome de uma constraint, após obrigatoriamente criada, como por exemplo, a “fk_ID_Autor”, desta video-aula.
    Muito obrigado.

    • Olá Sidney! O nome da constraint é importante pois será utilizado para que possamos interagir com ela – por exemplo, se precisarmos exclui-la, o faremos pelo seu nome. Veja a sintaxe no texto do artigo. Abraço!

  2. ótimooooooo , treinamento ,

  3. Como alterar o nome de uma coluna?

    obrigado
    Leandro

    • Olá Leandro!
      Para alterar o nome de uma coluna você pode usar o procedimento armazenado sp_rename no SQL Server, como segue:
      EXEC sp_RENAME ‘Nome_Tabela.Nome_Coluna_Atual’ , ‘Novo_Nome_Coluna’, ‘COLUMN’
      Onde Nome_Tabela.Nome_Coluna_Atual é o nome atual da coluna, precedido do nome da tabela que a contém, e Novo_Nome_Coluna é o nome que você quer atribuir a essa coluna agora.
      Abraço!

  4. Olá, Professor, boa tarde!
    Gostaria de inserir uma nova coluna em uma tabela no SQL Server, o problema que essa coluna precisa estar depois de uma outra existente e não no final da tabela. Tem como fazer isso ?

  5. José Rafael // 24/05/2020 em 0:00 // Responder

    Olá Prof. Fábio!

    Primeiramente, obrigado pelo conteúdo. Seus materiais são de excelente qualidade!
    Gostaria de deixar apenas a título de observação/curiosidade que no SQL SERVER 2012 o comando para alterar a coluna não está compilando quando utilizamos o MODIFY COLUMN. Uma alternativa é substituir por ALTER COLUMN. Exemplos:

    ALTER TABLE nome_tabela MODIFY COLUMN nome_coluna tipo_dados;
    ALTER TABLE nome_tabela ALTER COLUMN nome_coluna tipo_dados;

    Fonte: https://docs.microsoft.com/pt-br/sql/t-sql/statements/alter-table-transact-sql?view=sql-server-ver15#alter_column

  6. Como eu faço para excluir(zerar) todas as tabelas de um banco de dados access com codigo vba??

  7. Olá Boa tarde
    Curso Fantástico

    Eu gostaria de saber onde baixo as tabelas do curso para copiar, pois nao achei nos comentários e nem nos vídeos.

    Muito Obrigado

Escreva um comentário

Seu e-mail não será divulgado


*