PROTSEDUURID :
- Andmete lisamine tabelisse FilmType (Filmtype ja kirjaldus sisestab kasutaja kui käivitab protseduuri)
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.');
Tulemus :

2. FilmTypeLisamine
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', 'super film';
Tulemus :

3. FilmTypeKustuta
CREATE PROCEDURE FilmTypeKustuta
@kustutamisID int
AS
BEGIN
SELECT * FROM filmtype;
DELETE FROM filmtype
WHERE filmtypeID = @kustutamisID;
SELECT * FROM filmtype;
END;
--kontroll
EXEC FilmTypeKustuta 4
Tulemus :

4. otsing1taht
CREATE PROCEDURE otsing1taht
@taht CHAR(1)
AS
BEGIN
SELECT filmtype, kirjeldus
FROM filmtype
WHERE filmtype LIKE concat(@taht, '%');
END
--kontroll
EXEC otsing1taht 2
Tulemus :

5. FilmTypeUendamine
CREATE PROCEDURE FilmTypeUendamine
@id int,
@uusfilmType varchar(100)
AS
BEGIN
UPDATE filmtype
SET filmtype = @uusfilmType
WHERE filmtypeID = @id;
SELECT * FROM filmtype;
END
--kontroll
EXEC FilmTypeUendamine 1, '2D'
Tulemus :

Iseseisev töö
1. FilmTypeLisamineRezisoor (добавление данных в любую произвольную таблицу из БД кинотеатр)
CREATE PROCEDURE FilmTypeLisamineRezisoor
@id int,
@nimi varchar(100),
@perenimi varchar(100)
AS
BEGIN
INSERT INTO rezisoor (rezisoorID, eesnimi, perenimi)
VALUES (@id, @nimi, @perenimi);
SELECT * FROM rezisoor;
END;
--kontroll
EXEC FilmTypeLisamineRezisoor 4, 'Valeria', 'Allik';
Tulemus :

2. zanrKustuta (удаление записей в таблице žanr по введенному id)
CREATE PROCEDURE zanrKustuta
@kustutamisID int
AS
BEGIN
SELECT * FROM zanr;
DELETE FROM zanr
WHERE zanrID = @kustutamisID;
SELECT * FROM zanr;
END;
--kontroll
EXEC zanrKustuta 4
Tulemus :

3. удаление таблицы
CREATE PROCEDURE TableKustuta
@TableKustutamine varchar (100)
AS
BEGIN
declare @STMT as varchar(max)
SET @STMT = concat('DROP TABLE ', @TableKustutamine);
END;
PRINT @STMT;
BEGIN
EXEC (@STMT);
END
--kontroll
EXEC TableKustuta test
------------
CREATE TABLE test(
testID int);
select * from test;
exec TableKustuta test;
select * from test;
4. изменение (ALTER) таблицы режисер
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;
--dobavlenie stolbca
EXEC muudatus @tegevus='add', @tabelinimi='...',@veerunimi='test', @tyyp='int';
SELECT * FROM rezisoor
-- udalenie stolbca
EXEC muudatus @tegevus='drop', @tabelinimi='...',@veerunimi='test';
Добавить комментарий