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