--kuvab tabelist linnad 2 veergu
USE DenisenkoTARpv22
go
CREATE PROCEDURE lihtneSelect
AS
BEGIN
SELECT linnanimi,rahvaarv
FROM linnad;
END
--protseduuri käivitamine
EXEC lihtneSelect;
kuvab tabelist linnad 2 veergu

--lisamine tabelisse
USE DenisenkoTARpv22
go
CREATE PROCEDURE lisaLinn
@nimi varchar(25),
@rahvakogus int
AS
BEGIN
INSERT INTO linnad(linnanimi,rahvaarv)
VALUES (@nimi,@rahvakogus);
SELECT * FROM linnad;
END
--käivitamine
EXEC lisaLinn @nimi='Kohtla-Järve', @rahvakogus=876543
Lisamine tabelisse

--Kuva linnad, kus sisestatud väärtus on väiksem kui rahvaarv
USE DenisenkoTARpv22
go
CREATE PROCEDURE suuremKui
@rahvaKogus int
AS
BEGIN
SELECT * FROM linnad
WHERE rahvaarv > @rahvaKogus;
END
--kuva linnad
EXEC suuremKui @rahvaKogus=100000
Kuva linnad, kus sisestatud väärtus on väiksem kui rahvaarv

--Otsige linnu esimese tähe järgi
USE DenisenkoTARpv22
go
CREATE PROCEDURE linnaOtsing
@taht char(1)
AS
BEGIN
SELECT * FROM linnad
WHERE linnanimi LIKE @taht+'%';
END
--Otsimine
EXEC linnaOtsing 'T'
Otsige linnu esimese tähe järgi

--Linna kustutamine selle ID järgi
USE DenisenkoTARpv22
go
CREATE PROCEDURE linnaKustutamine
@kustutaId int
AS
BEGIN
SELECT * FROM linnad ;
DELETE FROM linnad
WHERE linnID=@kustutaId;
SELECT * FROM linnad;
END
--kustutamine
EXEC linnaKustutamine 5
Linna kustutamine selle ID järgi

--Määrake rohkem linnas, kus elab 100 000 või vähem
USE DenisenkoTARpv22
go
CREATE PROCEDURE hinnang
AS
BEGIN
SELECT linnanimi, rahvaarv,
IIF(rahvaarv>100000, 'Suur linn', 'Väike linn') AS hinnang
FROM linnad;
END
--Määrake
EXEC hinnang
Määrake rohkem linnas, kus elab 100 000 või vähem
--
USE DenisenkoTARpv22
go
CREATE PROCEDURE liza_zanr
@nimi varchar(25),
@kirjendus TEXT
AS
BEGIN
INSERT INTO zanr(zanrNimi,zanrKirjeldus)
VALUES (@nimi,@kirjendus);
SELECT * FROM zanr;
END
--
EXEC liza_zanr @nimi='Detektiiv',@kirjendus='kinožanr, mille teosed sisaldavad kuritegude demonstratsioone ja nende uurimist.'

Žanritabeli täitmine
--
USE DenisenkoTARpv22
go
CREATE PROCEDURE otsing_zanr
@taht char(1)
AS
BEGIN
SELECT * FROM zanr
WHERE zanrNimi LIKE @taht+'%';
END
--
EXEC otsing_zanr 'D'

Žanri otsing esimese tähe järgi
--
USE DenisenkoTARpv22
go
CREATE PROCEDURE kustutamine_zanr
@kustutaId int
AS
BEGIN
SELECT * FROM zanr ;
DELETE FROM zanr
WHERE zanrID=@kustutaId;
SELECT * FROM zanr;
END
--
EXEC kustutamine_zanr 5

Žanri eemaldamine ID järgi
--
USE DenisenkoTARpv22
go
CREATE PROCEDURE uus_zanr_nimi
@uusnimi varchar(25),
@redID int
AS
BEGIN
SELECT * FROM zanr ;
UPDATE zanr SET zanrNimi=@uusnimi
WHERE zanrID=@redID;
SELECT * FROM zanr;
END
--
EXEC uus_zanr_nimi @uusnimi='Ekshn',@redID=2

Žanri nime muutmine selle ID järgi
--
USE DenisenkoTARpv22
go
CREATE PROCEDURE ZanrOnTaht
@taht char(1)
AS
BEGIN
SELECT zanrNimi FROM zanr
WHERE zanrNimi like '%'+@taht+'%';
END
--
exec ZanrOnTaht 'e'

Otsige žanrit, milles on sisestatud täht
--
USE DenisenkoTARpv22
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 @valik='lisa',@tabelinimi='linnad',@veerunimi='test',@tyyp='int';
select * from linnad;
--veergu kustutamine
EXEC StruktuuriMuutmine @valik='kustuta',@tabelinimi='linnad',@veerunimi='test';
select * from linnad;
USE [DenisenkoTARpv22]
GO
/****** Object: StoredProcedure [dbo].[StruktuuriMuutmine] Script Date: 06.03.2023 10:55:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[StruktuuriMuutmine]
@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