CREATE TABLE linnad( linnID int PRIMARY key identity(1,1), linnanimi varchar(25) UNIQUE, rahvaarv int) INSERT INTO linnad (linnanimi, rahvaarv) VALUES('Tallinn', 600000); SELECT * FROM linnad; INSERT INTO linnad (linnanimi, rahvaarv) VALUES('Tartu', 600000); SELECT * FROM linnad; INSERT INTO linnad (linnanimi, rahvaarv) VALUES('Valga', 1000); SELECT * FROM linnad; INSERT INTO linnad (linnanimi, rahvaarv) VALUES('Jõhvi', 123000); SELECT * FROM linnad; INSERT INTO linnad (linnanimi, rahvaarv) VALUES('Võru', 2000); SELECT * FROM linnad;

--kuvab tabelist linnad 2 veergu USE ProtseduurDenissGorjunovTARpv22 go CREATE PROCEDURE lihtneSelect AS Begin SELECT linnanimi, rahvaarv from linnad; end ---protseduuri käivitamine EXECUTE lihtneSelect;

-- lisamine tabelisse USE ProtseduurDenissGorjunovTARpv22 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 EXECUTE lisalinn @nimi='Paide',@rahvaKogus=23144;

-- Suurem kui USE ProtseduurDenissGorjunovTARpv22 go CREATE PROCEDURE suuremKui @rahvaKogus int AS BEGIN SELECT * from linnad where rahvaArv > @rahvaKogus; END EXECUTE suuremKui @rahvaKogus=100000;

-- linna otsing USE ProtseduurDenissGorjunovTARpv22 go CREATE PROCEDURE linnaOtsing @taht char(1) AS BEGIN SELECT * FROM linnad WHERE linnanimi LIKE @taht + '%'; END EXECUTE linnaOtsing @taht=j;

-- linna kustutamine USE ProtseduurDenissGorjunovTARpv22 go CREATE PROCEDURE linnaKustutamine @kustutaId int AS BEGIN SELECT * FROM linnad; DELETE FROM linnad WHERE linnID=@kustutaId; SELECT * FROM linnad; END EXECUTE linnaKustutamine @kustutaID=2;

-- linna tingimus IIF USE ProtseduurDenissGorjunovTARpv22 go CREATE PROCEDURE hinnang AS BEGIN SELECT linnanimi, rahvaarv, IIF(rahvaarv>100000, 'Suur linn', 'Väike linn') AS hinnang FROM linnad END exec hinnang;

CREATE TABLE keel ( keelID int PRIMARY KEY IDENTITY (1,1), keelNimi varchar(25), keelNimiVene varchar(25), keelNimiInglise varchar(25) )
USE ProtseduurDenissGorjunovTARpv22 GO CREATE PROCEDURE lisaKeelNimi @KN varchar(30), @KNV varchar(30), @KNI varchar(30) AS BEGIN INSERT INTO keel(keelNimi, keelNimiVene, keelNimiInglise) VALUES(@KN,@KNV,@KNI) SELECT * FROM keel; END EXEC lisaKeelNimi @KN="Prantsus", @KNV="фыв",@KNI="Hello";

USE ProtseduurDenissGorjunovTARpv22 GO CREATE PROCEDURE keelOtsing @taht char(1) AS BEGIN SELECT keelNimi FROM keel WHERE keelNimi LIKE concat('%',@taht,'%'); END EXEC keelOtsing P

USE ProtseduurDenissGorjunovTARpv22 GO CREATE PROCEDURE pdate @keelLisa varchar(30), @keeleID int AS BEGIN SELECT * FROM keel; UPDATE keel SET keelNimi=@keelLisa WHERE keelID=@keeleID; SELECT * FROM keel; END EXECUTE pdate @keelLisa='Saksa', @keeleID=1;

USE ProtseduurDenissGorjunovTARpv22 GO CREATE PROCEDURE Kustuta @keelDel varchar(30) AS BEGIN SELECT * FROM keel; DELETE FROM keel WHERE keelNimi=@keelDel; SELECT * FROM keel; END Exec Kustuta @keelDel='Saksa'

USE ProtseduurDenissGorjunovTARpv22 GO CREATE PROCEDURE otsingSum AS BEGIN SELECT count(keelNimi) as 'üldine keel' from keel; END SELECT * FROM keel; EXEC otsingSuma

USE ProtseduurDenissGorjunovTARpv22 GO CREATE PROCEDURE StrujtuuriMuutmine @tegevus varchar(30), @tabelinimi varchar(30), @veerunimi varchar(30), @tyyp varchar(30)=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 SELECT * FROM keel; EXEC StrujtuuriMuutmine @tegevus='lisa', @tabelinimi='keel', @veerunimi='test', @tyyp='int'; SELECT * FROM keel; EXEC StrujtuuriMuutmine @tegevus='kustuta', @tabelinimi='keel', @veerunimi='test'; SELECT * FROM keel;

USE ProtseduurDenissGorjunovTARpv22 GO CREATE PROCEDURE StrujtuuriMuutmine2 @valik varchar(30), @tabelinimi varchar(30), @veerunimi varchar(30), @tyyp varchar(30)=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 SELECT * FROM keel; EXEC StrujtuuriMuutmine2 @valik='lisa', @tabelinimi='keel', @veerunimi='test2', @tyyp='int'; SELECT * FROM keel; EXEC StrujtuuriMuutmine2 @valik='kustuta', @tabelinimi='keel', @veerunimi='test2'; SELECT * FROM keel;

Reapeat