AB kino SQL Server

  1. Andmete lisamine tabelisse FilmType (filmType ja Kirjeldus sisestab kasutaja kui käivatab protseduuri)
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 filmid';

2. Kustutamis protseduur, kustutab filmtüüp tema id järgi (kasutaja sisestab id ja siis filmtüüp kustutakse)

CREATE PROCEDURE filmTypeKustuta 
@kustutumisID int
AS
BEGIN
SELECT * FROM filmtype; 
DELETE FROM filmtype
WHERE filmtypeID = @kustutumisID;
SELECT * FROM filmtype;
END;
-- kontroll
EXEC filmTypeKustuta  4;

3.Otsing sisestatud tähte järgi(kasutaja sisestab filmitüüpi Esimene täht ja siis näidetakse kõik filmitüübid))

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

4. Uuendamis protseduur. Kasutaja sisestab uuendatud filmitüübi sisestatud id järgi.

CREATE PROCEDURE filmTypeUuendamine
@id int,
@uusFilmType varchar (100)
AS
BEGIN 
UPDATE filmtype 
SET filmtype=@uusFilmType
WHERE filmTypeID=@id;
SELECT * FROM filmtype;
END;
-- kontroll
EXEC filmTypeUuendamine  1, '2D';

5. Lisada andmed (INSERT) mis tahes suvalise tabeli AB kinoteat

CREATE PROCEDURE rezisoorinsert
@rezisoorID int,
@eesnimiKasutaja varchar (25),
@perenimiKasutaja varchar (25)
AS
BEGIN
INSERT INTO rezisoor (rezisoorID, eesnimi, perenimi)
VALUES (@rezisoorID, @eesnimiKasutaja, @perenimiKasutaja);
SELECT * FROM rezisoor;
END;
-- kontroll
EXEC rezisoorinsert 7, 'Daria' , 'Halchenko';

6. Zanr tabeli kirjete kustutamiseks sisestatud id järgi

CREATE PROCEDURE zanreemaldamine
@deletezanrID int
AS
BEGIN
SELECT * FROM zanr;
DELETE FROM zanr
WHERE zanrID = @deletezanrID;
SELECT * FROM zanr;
END; 
-- kontroll
EXEC zanreemaldamine 1;

7. Tabeli kustutamiseks sisestatud nime järgi (tabel ei tohi sisaldada sekundaarset võtit)

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

На оценку 4 выполнить все задания на оценку 3 + добавить 2 процедуры на обновление (UPDATE) и изменение (ALTER) таблицы режисер.

8. Lisada uuendusi (UPDATE) (eesnimi)

CREATE PROCEDURE updateEesnimi
@uueeesnimi varchar (25)
AS
BEGIN
UPDATE rezisoor SET eesnimi= @uueeesnimi
SELECT * FROM rezisoor;
END;
--kontroll
EXEC  updateEesnimi 'Daria';

9. Lisada uuendusi (UPDATE) (perenimi)

CREATE PROCEDURE updateperenimi
@uueperenimi varchar (25)
AS
BEGIN
UPDATE rezisoor SET perenimi= @uueperenimi
SELECT * FROM rezisoor;
END;
--kontroll
EXEC  updateperenimi 'Halchenko';

10. Muutus (ALTER) tabeli rezissoor

CREATE PROCEDURE muutuRezisoor
@muu_tus_rezisoor varchar (25)
AS
BEGIN
ALTER TABLE rezisoor ADD muu_tus_rezisoor varchar (25);
SELECT * FROM rezisoor;
END; 
--kontroll
EXEC muutuRezisoor  'aasta';

11.

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