CREATE TABLE filmtype (
filmTypeID int NOT NULL primary key,
filmType varchar(25) NOT NULL,
kirjeldus text DEFAULT NULL
);
select * from filmtype;
INSERT INTO filmtype(filmTypeID,filmType,kirjeldus) VALUES
(1, '2D', '2D-arvutigraafika on pildi esitamine digitaalsete kahemõõtmeliste mudelitena, näiteks tasandilise geomeetria ja teksti abil.'),
(2, '3D', '3D-arvutigraafika on pildi esitamine digitaalsete kolmemõõtmeliste mudelitena, näiteks ruumilise geomeetria abil.\r\n\r\n3D-mudel on kolmemõõtmelise objekti matemaatiline esitus. Mudelit saab kuvada kahemõõtmelisena 3D-renderdamise kaudu või kasutada mittevisuaalse arvutisimulatsiooni või arvutuste jaoks. On olemas ka 3D-arvutigraafika tarkvara.'),
(3, '4D', '3D-arvutigraafika lisaeffektidega.');

create procedure filmTypeLisamine
@id int,
@type varchar(100),
@kirjeldus text
as
begin
insert into filmtype(filmTypeID,filmType,kirjeldus)
values (@id, @type, @kirjeldus);
select * from filmtype;
end
-- kontroll
exec filmTypeLisamine 4, '10D', 'Uus super pupper film';

create procedure filmTypeKustuta
@kustutamisID int
as
begin
select * from filmtype;
delete from filmtype
where filmtypeID = @kustutamisID;
select * from filmtype;
end;
-- kontroll
exec filmTypeKustuta 4

— Otsing sisestatud tähte järgi
CREATE PROCEDURE otsingTaht
@taht CHAR(1)
AS
BEGIN
SELECT filmType, kirjeldus
FROM filmtype
WHERE filmType LIKE @taht + '%';
END;
-- kontroll
EXEC otsingTaht @taht = 'A';

- rezisoorLisamine ees ja perekonna nime tabelisse rezisoor
CREATE PROCEDURE rezisoorLisamine
@rezisoorID INT,
@uusEesnimi VARCHAR(50),
@uusPerenimi VARCHAR(50)
AS
BEGIN
INSERT INTO rezisoor (rezisoorID, eesnimi, perenimi)
VALUES (@rezisoorID, @uusEesnimi, @uusPerenimi);
SELECT * FROM rezisoor;
END;
Käivitamine:
-- kontroll
EXEC rezisoorLisamine @rezisoorID = 7, @uusEesnimi = 'Martin', @uusPerenimi = 'Sild';
Tulemus:

2. zanrKustutamine
CREATE PROCEDURE zanrKustutamine
@kasutajaID INT
AS
BEGIN
SELECT * FROM zanr;
DELETE FROM zanr
WHERE zanrID = @kasutajaID;
SELECT * FROM zanr;
END;
Käivitamine
EXEC zanrKustutamine @kasutajaID = 10;
Tulemus:

3. tabeli kustutamine
CREATE PROCEDURE tableKustutamine
@tabeliKustutamine VARCHAR(100)
AS
BEGIN
IF OBJECT_ID(@tabeliKustutamine, 'U') IS NOT NULL
BEGIN
DECLARE @STMT AS VARCHAR(MAX);
SET @STMT = CONCAT('DROP TABLE ', @tabeliKustutamine);
EXEC(@STMT);
PRINT 'Tabel ' + @tabeliKustutamine + ' on edukalt kustutatud.';
END
ELSE
BEGIN
PRINT 'Tabelit ' + @tabeliKustutamine + ' ei leitud.';
END
END;
Käivitamine
EXEC tableKustutamine @tabeliKustutamine = 'test';
Tulemus

4. zanrUuendamine
CREATE PROCEDURE zanrUendamine
@id INT,
@uusZanr VARCHAR(25)
AS
BEGIN
UPDATE zanr
SET zanrNimi = @uusZanr
WHERE zanrID = @id;
SELECT * FROM zanr;
END;
Käivitamine
EXEC zanrUendamine @id = 1, @uusZanr = 'Martin';
Tulemus

5.
CREATE PROCEDURE muudatus
@tegevus varchar(10),
@tabelinimi varchar(25),
@veerunimi varchar(25),
@tyyp varchar(25) =null
AS
BEGIN
DECLARE @sqltegevus as varchar(max)
set @sqltegevus=case
when @tegevus='add' then concat('ALTER TABLE ',
@tabelinimi, ' ADD ', @veerunimi, ' ', @tyyp)
when @tegevus='drop' then concat('ALTER TABLE ',
@tabelinimi, ' DROP COLUMN ', @veerunimi)
END;
print @sqltegevus;
begin
EXEC (@sqltegevus);
END
END;
--добавление столбца
EXEC muudatus @tegevus='add', @tabelinimi='test', @veerunimi='testID', @tyyp='int';
select * from ...
--удаление столбца
EXEC muudatus @tegevus='drop', @tabelinimi='test', @veerunimi='testID';

