CREATE TABLE linnad(
linnID int PRIMARY KEY identity(1,1),
linnanimi varchar(25) UNIQUE,
rahvaarv int)
insert into linnad(linnanimi, rahvaarv)
values('Paldiski',10000);
select * from linnad
-- kuvab tabelist linnad 2 veergu
use protseduuridMiljukova;
go
create procedure lihtneSelect
as
begin
select linnanimi, rahvaarv
from linnad;
end
--protseduuri käivitamine
exec lihtneSelect;
--lisamine tabelisse
use protseduuridMiljukova;
go
create procedure lisaLinn
@nimi varchar(30),
@rahvaKogus int
as
begin
insert into linnad(linnanimi, rahvaarv)
values(@nimi, @rahvaKogus);
select * from linnad;
end
--käivitamine
exec lisaLinn @nimi='Valga', @rahvaKogus=15000;
use protseduuridMiljukova;
go
create procedure suuremKui
@rahvaKogus int
as
begin
select * from linnad
where rahvaarv > @rahvaKogus;
end
exec suuremKui @rahvaKogus=100000;
use protseduuridMiljukova;
go
create procedure linnaOtsing
@taht char(1)
as
begin
select * from linnad
where linnanimi like @taht + '%';
end
exec linnaOtsing 'T';
exec linnaOtsing @taht='T'
use protseduuridMiljukova;
go
create procedure linnaKustutamine
@kustutaID int
as
begin
select * from linnad;
delete from linnad
where linnID=@kustutaID;
select * from linnad;
end
exec linnaKustutamine @kustutaID=3
use protseduuridMiljukova;
go
create procedure hinnaaeg
as
begin
select linnanimi, rahvaarv,
iif(rahvaarv>100000, 'Suur linn', 'Väile linn') as hinnnaeg
from linnad;
end
exec hinnaaeg
--looge tabel
create table zanrid(
zanrID int PRIMARY KEY identity(1,1),
zanrnimi varchar(25) UNIQUE,
zanrKirjeldus varchar(30))
Select * from zanrid
insert into zanrid(zanrnimi, zanrKirjeldus)
values('Draama','See artikkel on zanrist.');
select * from zanrid
--Žanri kustutamine selle ID järgi
use protseduuridMiljukova;
go
create procedure zanridKustutamine
@kustutaID int
as
begin
select * from zanrid;
delete from zanrid
where zanrID=@kustutaID;
select * from zanrid;
end
exec zanridKustutamine @kustutaID=4
--
Otsige kirja järgi
use protseduuridMiljukova;
go
create procedure zanrOtsing
@taht char(1)
as
begin
select * from zanrid
where zanrnimi like @taht + '%';
end
exec zanrOtsing @taht='D'
use protseduuridMiljukova;
go
create procedure StruktuuriMuutmine
@tegevus varchar(20),
@tabelinimi varchar(20),
@veerunimi varchar(20),
@tyyp varchar(20)=null
as
BEGIN
declare @sqltegevus as varchar(max)
set @sqltegevus=case
when @tegevus='lisa' then concat('ALTER TABLE ', @tabelinimi, ' ADD ', @veerunimi, ' ', @tyyp)
when @tegevus='kustuta' then concat('ALTER TABLE ', @tabelinimi, ' DROP COLUMN ', @veerunimi)
END;
print @sqltegevus;
begin
exec (@sqltegevus);
end
end
--käivitamine ja veergu lisamine
exec StruktuuriMuutmine @tegevus='lisa', @tabelinimi='linnad', @veerunimi='test', @tyyp='int';
--veergu kustutamine
exec StruktuuriMuutmine @tegevus='kustuta', @tabelinimi='linnad', @veerunimi='test';
select * from linnad
create procedure StruktuuriMuutmine2
@valik varchar(20),
@tabelinimi varchar(20),
@veerunimi varchar(20),
@tyyp varchar(20)=null
as
BEGIN
declare @sqltegevus as varchar(max)
if @valik='lisa'
set @sqltegevus=concat('ALTER TABLE ', @tabelinimi, ' ADD ', @veerunimi, ' ', @tyyp)
execute(@sqltegevus);
if @valik='kustuta'
set @sqltegevus=concat('ALTER TABLE ', @tabelinimi, ' DROP COLUMN ', @veerunimi)
execute(@sqltegevus);
end
--käivitamine ja veergu lisamine
exec StruktuuriMuutmine2 @valik='lisa', @tabelinimi='linnad', @veerunimi='vanus', @tyyp='int';
--veergu kustutamine
exec StruktuuriMuutmine2 @valik='kustuta', @tabelinimi='linnad', @veerunimi='test2';
select * from linnad