SQL protseduurid / SQL server

на этом месте запускается код и над ним поле, где создается место для нового
1
2
3
4
5
6
7
8
9
10
---kuvab talist linnad 2 veergu
use kemppitarpv22;
go
create procedure lihtneSelect
as
begin
select linnanimi, rahvaArv
from linnad
 
exec lihtneSelect;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
---lisamine tabelisse
use kemppitarpv22;
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='Maardu', @rahvaKogus=75000
1
2
3
4
5
6
7
8
9
use kemppitarpv22;
go
create procedure suuremKui
@rahvaKogus int
as
begin
select * from linnad
where rahvaArv > @rahvaKogus;
end
1
2
3
4
5
6
7
8
9
10
11
use kemppitarpv22;
go
create procedure linnaOtsing
@taht char(1)
as
begin
select * from linnad
where linnanimi like @taht + '%';
end
 
exec linnaOtsing @taht='T'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use kemppitarpv22;
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;
1
2
3
4
5
6
7
8
9
10
11
use kemppitarpv22;
go
create procedure hinnang
as
begin
select linnanimi, rahvaArv,
iif(rahvaArv>100000, 'Suur linn', 'Väike linn') as hinnang
from linnad;
end
 
exec hinnang;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
USE [kemppitarpv22]
GO
/****** Object:  StoredProcedure [dbo].[StruktuuriMuutmine]    Script Date: 06.03.2023 10:55:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
USE kemppitarpv22
GO
Create procedure StruktuuriMuutmineIF
@valik varchar(20),
@tegevus varchar(20),
@tabelinimi varchar(20),
@veerunimi varchar(20),
@tyyp varchar(20)=null
as
begin
declare @sqltegevus as varchar(max)
 
if @valik='lisa'
set @tegevus=concat('ALTER TABLE ', @tabelinimi, ' ADD ', @veerunimi, ' ', @tyyp)
exec (@sqltegevus);
 
if @valik='kustuta'
set @tegevus=concat('ALTER TABLE ', @tabelinimi, ' DROP COLUMN ', @veerunimi)
exec (@sqltegevus);
end
 
exec StruktuuriMuutmineIF @valik='lisa', @tegevus='lisa', @tabelinimi='linnad', @veerunimi='test', @tyyp='int';
exec StruktuuriMuutmineIF @valik='kustuta', @tegevus='lisa', @tabelinimi='linnad', @veerunimi='test';