1. Создание таблицы
CREATE TABLE linnad(
linnID int PRIMARY KEY IDENTITY(1,1),
linnanimi varchar(20) UNIQUE,
rahvaArv int);
INSERT INTO linnad (linnanimi, rahvaArv)
VALUES(‘Tallinn’, 650000);
SELECT * FROM linnad

2. Создание и Запуск процедуры в SQL Server
–kuvab tabelist linnad 2 veergu
USE ProtseduurTsepelevits
GO
CREATE PROCEDURE lihtneSelect
AS
BEGIN
SELECT linnanimi, rahvaArv
FROM linnad;
END
–protseduuri käivitamine
EXEC lihtneSelect
3. Процедура добавления нового города
— lisamine tabelisse
USE ProtseduurTsepelevits
GO
CREATE PROCEDURE lisLinn
@nimi varchar(25),
@rahvaKogus int
AS
BEGIN
INSERT INTO linnad(linnanimi, rahvaArv)
VALUES(@nimi, @rahvaKogus);
SELECT * from linnad;
END
EXEC lisLinn @nimi=’Valga’, @rahvaKogus=220000;

4.Процедура отображения значений выше введеного значения при запуске
USE ProtseduurTsepelevits
GO
CREATE PROCEDURE SuuremKui
@rahvaKogus int
AS
BEGIN
SELECT * FROM linnad
WHERE rahvaArv > @rahvaKogus;
END
EXEC SuuremKui @rahvaKogus=200000;
6. Процедура нахождения города по первой букве
ProtseduurTsepelevits
GO
CREATE PROCEDURE linnaOtsing
@taht char(1)
AS
BEGIN
SELECT * FROM linnad
WHERE linnanimi LIKE @taht + ‘%’;
END
EXEC linnaOtsing ‘T’;

7. Процедура удаления по города ID
USE ProtseduurTsepelevits
GO
CREATE PROCEDURE linnaKustutamine
@kustutaId int
AS
BEGIN
SELECT * FROM linnad
DELETE FROM linnad
WHERE linnID=@kustutaId;
SELECT * FROM linnad
END
EXEC linnaKustutamine @kustutaId = 5

8. Процедура оценки, большой или маленький город
USE ProtseduurTsepelevits
GO
CREATE PROCEDURE hinnang
AS
BEGIN
SELECT linnanimi,rahvaArv,
IIF(rahvaArv>200000, ‘Suur linn’, ‘Väike linn’) AS hinnang
FROM linnad;
END
EXEC hinnang

Повторение Практической работы
1. Процедура нахождения режиссера по первой букве имени
USE ProtseduurTsepelevits GO CREATE PROCEDURE eesOtsing2 @taht char(1) AS BEGIN SELECT * FROM rezisoor2 WHERE eesnimi LIKE @taht + '%'; END EXEC eesOtsing2 'S';

2. Процедура нахождения режиссера по первой букве фамилии
USE ProtseduurTsepelevits GO CREATE PROCEDURE pereOtsing @taht char(1) AS BEGIN SELECT * FROM rezisoor2 WHERE perenimi LIKE @taht + '%'; END EXEC pereOtsing 'B';

3. Процедура удаления режиссера по ID
USE ProtseduurTsepelevits GO CREATE PROCEDURE rezisooriKustutamine @kustutaId int AS BEGIN SELECT * FROM rezisoor2 DELETE FROM rezisoor2 WHERE rezisoorID=@kustutaId; SELECT * FROM rezisoor2 END EXEC rezisooriKustutamine @kustutaId = 5;

4. Процедура обновления года по ID
USE ProtseduurTsepelevits; GO CREATE PROCEDURE uuendusId @uuendusID INT, @uuendusaasta INT AS BEGIN SELECT * FROM rezisoor2 UPDATE rezisoor2 SET synniaasta = @uuendusaasta WHERE rezisoorID = @uuendusID; SELECT * FROM rezisoor2 WHERE rezisoorID = @uuendusID; END EXEC uuendusId @uuendusID=2, @uuendusaasta=2011;

5. Процедура показывающая при запуске кто старый а кто молодой режиссер
USE ProtseduurTsepelevits GO CREATE PROCEDURE vanuseVeerg AS BEGIN SELECT * , IIF(synniaasta<2000, 'Vana', 'Noor') AS vanus FROM rezisoor2 END EXEC vanuseVeerg

6. Процедура выводит возраст всех режиссеров
USE ProtseduurTsepelevits GO CREATE PROCEDURE vanuseOtse AS BEGIN SELECT * , (2023 - synniaasta) AS vanus FROM rezisoor2; END EXEC vanuseOtse

7.Процедура добавления и удаления новой колонки в таблицу
USE ProtseduurTsepelevits 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 = IIF(@tegevus = 'lisa', CONCAT('ALTER TABLE ', @tabelinimi, ' ADD ', @veerunimi, ' ', @tyyp), IIF(@tegevus = 'kustuta',CONCAT('ALTER TABLE ', @tabelinimi, ' DROP COLUMN ', @veerunimi),NULL)) END; print @sqltegevus; BEGIN EXEC (@sqltegevus); END END --käivitamine ja vvergu lisamine ja kustutamine EXEC StruktuuriMuutmine @tegevus ='lisa', @tabelinimi = 'linnad', @veerunimi = 'test', @tyyp = 'int'; SELECT * FROM linnad; EXEC StruktuuriMuutmine @tegevus = 'kustuta', @tabelinimi = 'linnad', @veerunimi = 'test', @tyyp = 'int'; SELECT * FROM linnad;

8. Процедура нахождение людей старше чем число вводимым пользователем
USE ProtseduurTsepelevits GO CREATE PROCEDURE Vanem_Kui @synniOtse INT AS BEGIN SELECT * FROM rezisoor2 WHERE synniaasta < @synniOtse END EXEC Vanem_Kui @synniOtse = 2000;