DB Cinema2 SQL

FilmTypeLiisamine

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';

filmTypeKustutamine

CREATE PROCEDURE filmTypeKustuta
@kustutamisID int
AS
BEGIN
SELECT * FROM filmType;
DELETE FROM filmType
WHERE filmTypeID = @kustutamisID;
SELECT * FROM filmType;
END
--komtroll
EXEC filmTypeKustuta 4;

Otsing sõna esimese tähega

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

filmTypeUuendamine

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';

TabeliKustutamine

CREATE PROCEDURE tabeliKustutamine
@tableKustutamine varchar (100)
AS
BEGIN
declare @STMT AS varchar(max)
SET @STMT = CONCAT('DROP TABLE ', @tableKustutamine);
END;
PRINT @STMT;
BEGIN
EXEC(@STMT);
END
--kontroll

CREATE TABLE test(
testID int);
select * from test;
EXEC tabeliKustutamine test;
select * from test;

Muudatus

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='filmtype', @veerunimi='test', @tyyp='int';
SELECT * FROM filmtype
--удаление столбца
EXEC muudatus @tegevus='drop', @tabelinimi='filmtype', @veerunimi='test';
SELECT * FROM filmtype