Tabeli muutmine
1. tabeli muutmine ja uue veeru lisamine
Uue veeru lisamiseks tabelisse kasutatakse käsku ALTER TABLE koos ADD.
ALTER TABLE kasutaja ADD epost varchar(20);
2. tabeli muutmine ja olemasoleva veeru kustutamine
Olemasoleva veeru eemaldamiseks kasutatakse käsku DROP COLUMN
ALTER TABLE kasutaja DROP column epost;
3. tabeli muutmine ja veeru andmetüübi muutmine
Veeru andmetüübi muutmiseks kasutatakse erinevaid käske sõltuvalt andmebaasist.
-- SQL Server
ALTER TABLE kasutaja ALTER COLUMN parool varchar(25);
-- mariadb/XAMPP
ALTER TABLE kasutaja MODIFY parool varchar(25);

Protseduuride loomine
Loome protseduuri, mis muudab tabelit ning lisab või kustutab selles veeru.
See protseduur muudab tabelit (lisab või kustutab veerge).
create procedure alterTable
@valik varchar(20),
@tabeliNimi varchar(25),
@veeruNimi varchar(25),
@tyyp varchar(20) = null
as
begin
declare @sql as varchar(max)
set @sql = case
when @valik = 'add' then
concat('alter table ', @tabelinimi, ' add ', @veerunimi, ' ', @tyyp)
when @valik = 'drop' then
concat('alter table ', @tabelinimi, ' drop column ', @veerunimi)
end;
print @sql;
begin
exec (@sql);
end;
end;

Siin kasutatakse ja kustutatakse protseduuri.
--kutse
exec alterTable @valik='add', @tabeliNimi='kasutaja', @veeruNimi='mobiil', @tyyp='char(13)';
select * from kasutaja;
--kustutamine
exec alterTable @valik='drop', @tabeliNimi='kasutaja', @veeruNimi='mobiil';
--proc kustutamine
drop procedure alterTable;

Siin lisatakse piirangud (primary key ja foreign key).
--piirangud
create table city(
id int not null,
cityname varchar(50));
select * from city;
--pk lisamine
alter table city
add constraint pk_id primary key(id);
--fk lisamine
alter table kasutaja add elukoht int;
select * from kasutaja;
alter table kasutaja
add constraint fk_city foreign key(elukoht)
references city(id);
show columns from city;

Skeem milline näitab kahe tabeli (kasutaja ja city)

