MSSQL Процедуры

CREATE TABLE linnad(
    linnID int PRIMARY KEY identity(1,1),
    linnanimi varchar(20) UNIQUE,
    rahvaarv int);
Insert Into linnad(linnanimi,rahvaarv)
Values('Tapa',5000);
select * from linnad
--kuvab tabelist linnad 2 veergu
USE Protseduurid_Suskevits
go
create procedure lihmeselect
As
Begin
Select linnanimi, rahvaarv
from linnad 
End
Exec lihmeselect;
--lisamine tabelisse
USE Protseduurid_Suskevits
go
create procedure lisalinn
@nimi varchar (30),
@rahvakogu int
As
Begin 
Insert into linnad(linnanimi,rahvaarv)
values(@nimi, @rahvakogu );
Select * from linnad;
End
Exec lisalinn @nimi='Parnu', @rahvakogu=40000 ;
--lisamine tabelisse
USE Protseduurid_Suskevits
go
create procedure SuremKui
@RahvaKogus int
as
begin
select*from linnad
where rahvaarv > @RahvaKogus;
end
Exec SuremKui @RahvaKogus=39000 ;
USE Protseduurid_Suskevits
go
create procedure linnaotsing
@taht varchar(1)
as
begin
select*from linnad
where linnanimi like @taht + '%';
end
Exec linnaotsing @taht='T' ;
USE Protseduurid_Suskevits
go
create procedure linnaKustamine
@kustutaID int
as
begin
Select * from linnad;
Delete from linnad
where linnid=@kustutaID;
Select * from linnad;
end
Exec linnaKustamine 4 ;
USE Protseduurid_Suskevits
go
create procedure hinnaaeg
as
begin
Select linnanimi, rahvaarv,
IIf(rahvaarv>100000, 'Suur linn','Vaike linn') as hinnaeg
from linnad;
end
Exec hinnaaeg;

ISESEISEV TOO :

USE Protseduurid_Suskevits
go
create procedure add_rezisoor
@uuseesnimi varchar (30),
@uusperenimi varchar(30)
as
begin
Insert into rezisoor(eesnimi,perenimi)
values(@uuseesnimi, @uusperenimi)
Select * from rezisoor;
end
exec add_rezisoor @uuseesnimi='Artur', @uusperenimi='Shushkevitch';

Add new rezisoor

go
create procedure found_rezisoor
@letter varchar (1)
as
begin
Select * from rezisoor
where eesnimi like @letter + '%';
end
exec found_rezisoor @letter='a';

Found rezisoor by letter in name

go
create procedure Delete_rezisoor
@kustutaID int
as
begin
Select * from rezisoor;
Delete from rezisoor
where rezisoorId=@kustutaID;
Select * from rezisoor;
end
Exec Delete_rezisoor 4 ;

Delete rezisoor

go
create procedure Count_rezisoor
as
begin
Select count(eesnimi) as kuiplaju
from rezisoor
end
Exec Count_rezisoor ;

Count rezisoor

go
create procedure Update_nimi
@updateID int,
@uusnimi varchar(30)
as
begin
update rezisoor set eesnimi = @uusnimi
where rezisoorId=@updateID;
Select * from rezisoor;
end
Exec Update_nimi @updateID=3, @uusnimi='Valentin' ;

Update nimi

go
create procedure Update_perenimi
@updateID int,
@uusperenimi varchar(30)
as
begin
update rezisoor set perenimi = @uusperenimi
where rezisoorId=@updateID;
Select * from rezisoor;
end
Exec Update_perenimi @updateID=3, @uusperenimi='Strikalo' ;

Update Surname

go
create procedure columnaeg
as
begin
Select * from rezisoor;
Alter Table rezisoor ADD age int;
Select * from rezisoor;
end
exec columnaeg;

Add Age

go
create procedure Update_age
@updateID int,
@uusage varchar(30)
as
begin
update rezisoor set age = @uusage
where rezisoorId=@updateID;
Select * from rezisoor;
end
Exec Update_age @updateID=1, @uusage=30;

Update Age

go
create procedure rezisooraaeg
as
begin
Select eesnimi, perenimi, age,
IIf(age>18, 'ule 18','ei ule 18') as ule
from rezisoor;
end
Exec rezisooraaeg;

Rezisoor older 18?

————————————————————————————————

USE Protseduurid_Suskevits
go
create procedure Struuktur
@tegevus varchar (20),
@tabelnimi 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 ', @tabelnimi, ' ADD ', @veerunimi, ' ',@tyyp)
end;
print @sqltegevus;
begin
exec (@sqltegevus);
end
end
exec Struuktur @tegevus='lisa', @tabelnimi='linnad', @veerunimi='test', @tyyp='int';
USE Protseduurid_Suskevits
go
alter procedure Struuktur
@tegevus varchar (20),
@tabelnimi varchar (20),
@veerunimi varchar(20)=NULL,
@tyyp varchar(20)
as
begin
Declare @sqltegevus as varchar(max)
set @sqltegevus=case
when @tegevus='lisa' THEn CONCat ('Alter Table ', @tabelnimi, ' ADD ', @veerunimi, ' ',@tyyp)
when @tegevus='kustuta' THEn CONCat ('Alter Table ', @tabelnimi, ' Drop Column ', @veerunimi)
end;
print @sqltegevus;
begin
exec (@sqltegevus);
end
end
exec Struuktur @tegevus='kustuta', @tabelnimi='linnad', @veerunimi='test', @tyyp=0;
USE Protseduurid_Suskevits
go
create procedure Struuktur2
@valik varchar (20),
@tegevus varchar (20),
@tabelnimi varchar (20),
@veerunimi varchar(20),
@tyyp varchar(20)
as
begin
Declare @sqltegevus as varchar(max)
if @valik='lisa'
Set @sqltegevus = CONCat ('Alter Table ', @tabelnimi, ' ADD ', @veerunimi, ' ',@tyyp);
execute (@sqltegevus)
if @valik='kustuta'
set @tyyp = 0;
Set @sqltegevus = CONCat ('Alter Table ', @tabelnimi, ' Drop Column ', @veerunimi);
execute (@sqltegevus)
end;
exec Struuktur2 @valik='lisa', @tegevus='0', @tabelnimi='linnad', @veerunimi='vanus', @tyyp='int';

DONT WORK RN