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 MODIFY COLUMN nome_coluna tipo_dados;

Adicionar uma constraint do tipo NOT NULL a uma coluna:

ALTER TABLE nome_tabela MODIFY 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 (1327 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica 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.
Contato: Website

10 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

Escreva um comentário

Seu e-mail não será divulgado


*