Перейти к содержимому
Главная страница » Protseduurid SQL Server

Protseduurid SQL Server

create table linnad( linnID int primary key identity(1,1), linnanimi varchar(25) unique, rahvaArv int); 

insert into linnad(linnanimi, rahvaArv)
values('Tallin', 650000);

select * from linnad

>>>

--kuvab tabelist linnad 2 veergu
use procedurYekasov;
go
create procedure lihtneSelect
as
begin
select linnanimi, rahvaArv
from linnad;
end

exec lihtneSelect;
--lisamine tabelisse
use procedurYekasov;
go
create procedure lisaLinn
@nimi varchar(30), 
@rahvaKogus int
as
begin
insert into linnad(linnanimi, rahvaArv)
values (@nimi, @rahvaKogus);
select * from linnad;
end
exec lisaLinn @nimi='Valga', @rahvaKogus=20000;
use procedurYekasov;
go
create procedure suuremkui
@rahvaKogus int
as
begin
select * from linnad
where rahvaArv > @rahvaKogus;
end

exec suuremkui @rahvaKogus=100000;
use procedurYekasov;
go
create procedure linnaOtsing
@taht char(1)
as
begin
select * from linnad
where linnanimi like @taht + '%';
end

exec linnaOtsing @taht='T'
use procedurYekasov;
go
create procedure linnaKustutamine
@kustutaID int 
as
begin
select * from linnad;

delete from linnad 
where linnID=@kustutaID;

select * from linnad;
end

exec linnaKustutamine 5
use procedurYekasov;
go
create procedure hinnang
as
begin
select linnanimi, rahvaArv,
iif(rahvaArv>100000, 'Suur linn', 'Väike linn') as hinnang
from linnad;
end

exec hinnang

iseseisevtöö

use procedurYekasov;
go
create procedure selec
as
begin
select filmNimetus, filmtypeID
from film 
where filmtypeID=2;
end

exec selec
use procedurYekasov;
go
create procedure inser
@filmType varchar(25),
@kirjeldus varchar(40)
as
begin
insert into filmtype(filmType, kirjeldus)
values (@filmType, @kirjeldus);
select * from filmtype;
end

exec inser '36D', 'papabeve'
use procedurYekasov;
go
create procedure delet
@uuendusID int,
@newdescriptionID varchar(40)
as
begin 
select * from filmtype;
update filmtype set kirjeldus=@newdescriptionID
where filmType=@uuendusID;
select * from filmtype;
end

exec delet 3D, 'nu nez chto tam'

use procedurYekasov;
go
create procedure struktuuriMuutmine
@tegevus varchar(20),
@tabelinimi varchar(20),
@veerunimi varchar(20),
@tyyp varchar(20)
as
begin
declare @sqltegevus as varchar(max)
set @sqltegevus=case
when @tegevus='lisa' Then concat('alter table ', @tabelinimi, ' add ', @veerunimi, ' ', @tyyp)
end;
print @sqltegevus;
begin
exec (@sqltegevus);
end
end


exec struktuuriMuutmine @tegevus='Lisa', @tabelinimi='linnad', @veerunimi='test', @tyyp='int';

select * from linnad
use procedurYekasov;
go
create procedure struktuuriMuutmin
@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


exec struktuuriMuutmin @tegevus='kustuta', @tabelinimi='linnad', @veerunimi='test';

select * from linnad