Создание таблицы:
CREATE TABLE linnad(
linnID int primary key identity(1,1),
linnanimi varchar(25) UNIQUE,
rahvaarv int)
INSERT INTO linnad(linnanimi, rahvaarv)
VALUES ('Viljandi', 50000);
SELECT * FROM linnad;

Выбирает столбец названия города и количества населения:
--Kuvab tabelist linnad 2 veergu
USE ProtseduurRogovski;
GO
CREATE PROCEDURE LihtneSelect
AS
BEGIN
SELECT linnanimi, rahvaarv
FROM linnad;
END
--protseduuri käivitamine
EXEC LihtneSelect;

Процедура добавления города:
USE ProtseduurRogovski;
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='Narva',@rahvakogus=20000;

Ищет города у которых больше 50000 жителей:
USE ProtseduurRogovski;
GO
CREATE PROCEDURE SuuremKui
@arv int
AS
BEGIN
SELECT * FROM linnad
WHERE rahvaarv > @arv;
END
EXEC SuuremKui @arv=50000;

Нахождение города по первой букве:
USE ProtseduurRogovski;
GO
CREATE PROCEDURE LinnaOtsing
@taht char(1)
AS
BEGIN
SELECT * FROM linnad
WHERE linnanimi LIKE @taht + '%';
END
EXEC LinnaOtsing 'T';
EXEC LinnaOtsing @taht='T';

Удаление города по айди:
USE ProtseduurRogovski;
GO
CREATE PROCEDURE Kustutamine
@kustutaID int
AS
BEGIN
SELECT * FROM linnad;
DELETE FROM linnad
WHERE linnID=@kustutaID;
SELECT * FROM linnad;
END
EXEC kustutamine 6;

Если в городе больше 90000, то город большой, если нет, то маленький:
USE ProtseduurRogovski;
GO
CREATE PROCEDURE hinnang
AS
BEGIN
SELECT linnanimi, rahvaarv,
IIF(rahvaarv>90000, 'Suur linn', 'Väike linn') AS hinnang
FROM linnad;
END
EXEC hinnang;

Добавление процедуры для добавления столбцов:
USE ProtseduurRogovski
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;
EXEC StruktuuriMuutmine @tegevus='kustuta',@tabelinimi ='linnad', @veerunimi='test';


Тоже самое только через иф:
USE ProtseduurRogovski
GO
CREATE PROCEDURE StruktuuriMuutmine2
@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);
IF @valik='kustuta'
SET @sqltegevus=CONCAT('ALTER TABLE ', @tabelinimi, ' DROP COLUMN ', @veerunimi);
execute (@sqltegevus);
END
--Lisamine
EXEC StruktuuriMuutmine2 @valik='lisa',@tabelinimi ='linnad', @veerunimi='test',@tyyp='int';
SELECT * FROM linnad;
--Kustutamine
EXEC StruktuuriMuutmine2 @valik='kustuta',@tabelinimi ='linnad', @veerunimi='test';
SELECT * FROM linnad;
Kinoteatrlaus:
Создание таблицы режиссёров:
CREATE TABLE rezisoor (
rezisoorID int NOT NULL,
eesnimi varchar(25) DEFAULT NULL,
perenimi varchar(25) DEFAULT NULL
)
-- Дамп данных таблицы `rezisoor`
INSERT INTO rezisoor (rezisoorID, eesnimi, perenimi) VALUES
(1, 'Quentin', 'Tarantino'),
(2, 'Sarik', 'Andreasjan'),
(3, 'Svetlana', 'Baskova'),
(4, 'Michael', 'Bay'),
(5, 'Guy', 'Richi'),
(6, 'Woody', 'Allen');
SELECT * FROM rezisoor;
Поиск по первой букве режиссёра:
USE kinoteaterlausRogovski;
GO
CREATE PROCEDURE RezOtsing
@taht char (1)
AS
BEGIN
SELECT * FROM rezisoor
WHERE eesnimi LIKE @taht + '%';
END
EXEC RezOtsing 'S';

Обновление возраста режиссёров:
USE kinoteaterlausRogovski
GO
CREATE PROCEDURE updVanus
@vanusarv int,
@IDarv int
AS
BEGIN
UPDATE rezisoor
SET vanus = @vanusarv
WHERE rezisoorID = @IDarv;
SELECT * FROM rezisoor;
END
EXEC updVanus @vanusarv=50,@IDarv=6;

Процедура показывает опытный или нет по возрасту режиссёр:
USE kinoteaterlausRogovski
GO
CREATE PROCEDURE kogenud
AS
BEGIN
SELECT eesnimi, perenimi, vanus,
IIF(vanus>40, 'kogenud', 'ei koggenud') AS hinnang
FROM rezisoor;
END
EXEC kogenud;

Добавление режиссёра:
USE [kinoteaterlausRogovski]
GO
/****** Object: StoredProcedure [dbo].[LisaRez] Script Date: 06.03.2023 11:17:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[LisaRez]
@ID int,
@nimi varchar (30),
@pere varchar (30),
@vanusarv int
AS
BEGIN
INSERT INTO rezisoor(rezisoorID,eesnimi,perenimi,vanus)
VALUES (@ID, @nimi, @pere, @vanusarv);
SELECT * FROM rezisoor
END

Удаление режиссёра:
USE kinoteaterlausRogovski
GO
CREATE PROCEDURE Kustutamine
@kustutaID int
AS
BEGIN
SELECT * FROM rezisoor;
DELETE FROM rezisoor
WHERE rezisoorID=@kustutaID;
SELECT * FROM rezisoor;
END
EXEC kustutamine 7;USE kinoteaterlausRogovski
GO
CREATE PROCEDURE Kustutamine
@kustutaID int
AS
BEGIN
SELECT * FROM rezisoor;
DELETE FROM rezisoor
WHERE rezisoorID=@kustutaID;
SELECT * FROM rezisoor;
END
EXEC kustutamine 7;
