Sunteți pe pagina 1din 5

Ministerul Educației al Republicii Moldova

Universitatea Tehnică a Moldovei


Departamentul Inginerie, Software și Automatică

Raport
Lucrare de laborator Nr. 9

Tema: Crearea și utilizarea declanșatoarelor


Disciplina: Baze de Date și Cunoștințe

Efectuat de: st.gr.TI-131 f/r Bogdan Ion

Controlat de: Bulai Rodica

Chişinău 2017
Tema: Crearea și utilizarea declanșatoarelor
Scopul lucrării: Gestionarea și executarea declanșatoarelor de către SQL Server 2012.
Analiza declanșatoarelor de tip DML, DDL și LOGON, structura declanșatoarelor,
creare și executarea declanșatoarelor.

Executarea lucrării:
1. Să se modifice declanșatorul inregistrare_noua în așa fel încît în cazul
actualizării adresei furnizorului să apară mesajul de informare, care va afișa
numele furnizorului, adresa veche și adresa noua.

USE Calculatoare;
GO
IF OBJECT_ID ('inregistrare_noua', 'TR') IS NOT NULL
DROP TRIGGER inregistrare_noua;
GO
CREATE TRIGGER inregistrare_noua ON furnizor AFTER UPDATE
AS SET NOCOUNT ON
IF UPDATE(Adresa)
SELECT 'Adresa ' + RTRIM(UPPER(inserted.Nume)) + 'a fost schimbata de la ' +
RTRIM(UPPER(deleted.Adresa)) + ' la ' + RTRIM(UPPER(inserted.Adresa))
FROM inserted, deleted;
GO
UPDATE furnizor SET Adresa='Studentilo 7/1' WHERE Cod=1;
GO

Rezultat: Adresa Rosca Grigore a fost schimbata de la Florilor


la Studentilor 7/1

2. Să se creeze declanșatoarele care ar insera corect (consecutiv) datele în baza de


date calculatoare și ar permite evitarea erorilor la nivelul cheilor externe.

USE Calculatoare;
GO
IF OBJECT_ID ('inserare_fara_erori', 'TR') IS NOT NULL
DROP TRIGGER inserare_fara_erori;
GO
CREATE TRIGGER inserare_fara_erori ON pc_uri INSTEAD OF INSERT
AS
DECLARE @Model varchar(4)
SET @Model = (SELECT inserted.Model FROM inserted)
IF (@Model NOT IN(SELECT Model FROM produse WHERE Tip='PC'))
BEGIN
INSERT INTO produse VALUES('W',@Model,'Laptop_uri')
END
GO
INSERT INTO pc_uri(Cod, Model, Viteza, Ram, Hd, Cd, Pret) VALUES
(12,1500,500,64,5,'12x',600);
3. Să se creeze un declanșator care ar interzice ștergerea modelelor produselor
producătorului „A”, produselor care costă mai mult de 300, precum și editarea
valorilor cîmpului Cod. Se va afișa un mesaj de avertizare în cazul tentativei de a
încălca constrîngerea.

USE Calculatoare;
GO
IF OBJECT_ID ('interzice_stergerea_A', 'TR') IS NOT NULL
DROP TRIGGER interzice_stergerea_A;
GO
CREATE TRIGGER interzice_stergerea_A ON pc_uri AFTER UPDATE, DELETE
AS
IF EXISTS (SELECT deleted.Model FROM deleted INNER JOIN produse ON
deleted.Model=produse.Model
WHERE produse.Producator='A' OR deleted.Pret>=300)
BEGIN
PRINT ('Tentativa esuata de a modifica un produs al producatorului "A"');
ROLLBACK
END
GO
DELETE FROM pc_uri WHERE Model='1232';
GO

4. Să se creeze un declanșator DDL care ar interzice modificarea coloanei Model în


tabelele bazei de date calculatoare cu afișarea mesajului respectiv.

USE Calculatoare;
GO
IF EXISTS (SELECT * FROM sys.triggers WHERE parent_class=0 AND name='Modificare')
DROP TRIGGER Modificare ON DATABASE;
GO
CREATE TRIGGER Modificare ON DATABASE
AFTER ALTER_TABLE
AS
DECLARE @cmd sysname
SET @cmd=EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(max)');
IF (@cmd LIKE '%ALTER COLUMN%Pret%')
BEGIN
PRINT ('Este interzisa modificarea coloanei Model');
ROLLBACK
END
GO
ALTER TABLE pc_uri ALTER COLUMN Pret float;
GO
5. Să se creeze un declanșator DDL care ar interzice modificarea schemei bazei de
date în afara orelor de lucru.

USE Calculatoare;
GO
IF EXISTS (SELECT * FROM sys.triggers WHERE parent_class=0 AND name='Orar_lucru')
DROP TRIGGER Orar_lucru ON DATABASE;
GO
CREATE TRIGGER Orar_lucru ON DATABASE
AFTER ALTER_TABLE
AS
IF (DATEPART (HH,GETDATE())NOT BETWEEN 9 AND 17)
BEGIN
PRINT ('Modificarea Bazei de Date este interzisa in afara orelor de lucru');
ROLLBACK
END
GO
ALTER TABLE pc_uri DROP COLUMN Cod;
GO

6. Să se creeze un declanșator DDL care, la modificarea proprietăților coloanei Pret


dintr-un tabel, ar face schimbări asemănătoare în mod automat în restul tabelelor.

USE Calculatoare;
GO
IF EXISTS (SELECT * FROM sys.triggers WHERE parent_class=0 AND name='Modificare_Coloane')
DROP TRIGGER Modificare_Coloane ON DATABASE;
GO
CREATE TRIGGER Modificare_Coloane ON DATABASE
AFTER ALTER_TABLE
AS
DECLARE @cmd varchar(max)
DECLARE @schema varchar(max)
DECLARE @cmd1 varchar(max)

SET @cmd=EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand)[1]','varchar(MAX)')
SET @schema=EVENTDATA().value('(/EVENT_INSTANCE/Objectname)[1]','varchar(MAX)')
SET @cmd1=REPLACE(@cmd,@schema,'****')

IF @cmd LIKE '%Pret'


BEGIN
IF (@schema != 'pc_uri')
BEGIN
SET @cmd1=REPLACE (@cmd,'****','pc_uri')
EXECUTE(@cmd1)
END

IF (@schema != 'laptop_uri')
BEGIN
SET @cmd1=REPLACE (@cmd,'****','laptop_uri')
EXECUTE(@cmd1)
END
IF (@schema != 'imprimante')
BEGIN
SET @cmd1=REPLACE (@cmd,'****','imprimante')
EXECUTE(@cmd1)
END
END
GO

Concluzie:
În urma realizării acestei lucrări de laborator am studiat gestionarea și executarea
declanșatoarelor de către SQL Server 2014. Am analizat declanșatoarele de tip DML,
DDL și LOGON, structura declanșatoarelor, crearea și executarea lor.

S-ar putea să vă placă și

  • Lab. 1. BDC Utm Fcim
    Lab. 1. BDC Utm Fcim
    Document15 pagini
    Lab. 1. BDC Utm Fcim
    Fernando Epic Costa
    0% (1)
  • SOMIPP Lab1
    SOMIPP Lab1
    Document6 pagini
    SOMIPP Lab1
    violina
    Încă nu există evaluări
  • PAm Examen-1
    PAm Examen-1
    Document12 pagini
    PAm Examen-1
    Eric Semeniuc
    Încă nu există evaluări
  • BDC 8
    BDC 8
    Document13 pagini
    BDC 8
    Ion Boika
    Încă nu există evaluări
  • BDC Cotovici
    BDC Cotovici
    Document15 pagini
    BDC Cotovici
    Alexey Dariev
    Încă nu există evaluări
  • Vasilachi Igor Lab 5 BDC v1
    Vasilachi Igor Lab 5 BDC v1
    Document8 pagini
    Vasilachi Igor Lab 5 BDC v1
    Fil Gorea
    Încă nu există evaluări
  • Vasilachi Igor Lab.5 BDC v1
    Vasilachi Igor Lab.5 BDC v1
    Document8 pagini
    Vasilachi Igor Lab.5 BDC v1
    VadimPlasiciuc
    Încă nu există evaluări
  • BDC Lab2
    BDC Lab2
    Document15 pagini
    BDC Lab2
    Dumitru Plamadeala
    100% (2)
  • BDC Lab6en
    BDC Lab6en
    Document6 pagini
    BDC Lab6en
    Catherine Nemerenco
    Încă nu există evaluări
  • Lab 4 BDC
    Lab 4 BDC
    Document8 pagini
    Lab 4 BDC
    Ion Popescu
    0% (1)
  • Lucrare de Curs BDC
    Lucrare de Curs BDC
    Document17 pagini
    Lucrare de Curs BDC
    Petru Voloceai
    Încă nu există evaluări
  • BDC 9b
    BDC 9b
    Document5 pagini
    BDC 9b
    Victor Noroc
    Încă nu există evaluări
  • SQL Lab1
    SQL Lab1
    Document27 pagini
    SQL Lab1
    Ion Şuiu
    Încă nu există evaluări
  • Lab 4 BDC PDF
    Lab 4 BDC PDF
    Document8 pagini
    Lab 4 BDC PDF
    Fil Gorea
    Încă nu există evaluări
  • Lab4 en Somipp
    Lab4 en Somipp
    Document36 pagini
    Lab4 en Somipp
    Catherine Nemerenco
    Încă nu există evaluări
  • BDC Laborator 13
    BDC Laborator 13
    Document5 pagini
    BDC Laborator 13
    Vladislav Crivenco
    Încă nu există evaluări
  • Lab4 BDC
    Lab4 BDC
    Document17 pagini
    Lab4 BDC
    Ivan
    Încă nu există evaluări
  • BDC Lucrare de Curs
    BDC Lucrare de Curs
    Document37 pagini
    BDC Lucrare de Curs
    Vladislav Crivenco
    Încă nu există evaluări
  • BDC Lab1
    BDC Lab1
    Document11 pagini
    BDC Lab1
    Radu Madiudin
    Încă nu există evaluări
  • BDC Lab8
    BDC Lab8
    Document36 pagini
    BDC Lab8
    Tudor Munteanu
    Încă nu există evaluări
  • AMOO3 Morcotilo Nichita FINAL
    AMOO3 Morcotilo Nichita FINAL
    Document11 pagini
    AMOO3 Morcotilo Nichita FINAL
    Никита Мк.
    Încă nu există evaluări
  • Lab4 TSA
    Lab4 TSA
    Document5 pagini
    Lab4 TSA
    Renat Rusu
    Încă nu există evaluări
  • Vasilachi Igor Lab.6 BDC v1
    Vasilachi Igor Lab.6 BDC v1
    Document5 pagini
    Vasilachi Igor Lab.6 BDC v1
    VadimPlasiciuc
    Încă nu există evaluări
  • Lab2 Somipp
    Lab2 Somipp
    Document6 pagini
    Lab2 Somipp
    Iov Albu
    Încă nu există evaluări
  • Baze de Data Lab4
    Baze de Data Lab4
    Document2 pagini
    Baze de Data Lab4
    DanuIepuras
    0% (1)
  • Pam 4
    Pam 4
    Document4 pagini
    Pam 4
    violina
    Încă nu există evaluări
  • Lab 4
    Lab 4
    Document17 pagini
    Lab 4
    Ana Toma
    Încă nu există evaluări
  • Proiect de Curs BDC
    Proiect de Curs BDC
    Document27 pagini
    Proiect de Curs BDC
    Ion Boika
    Încă nu există evaluări
  • Laborator 9 Baze de Date
    Laborator 9 Baze de Date
    Document5 pagini
    Laborator 9 Baze de Date
    Stanescu Yonut
    Încă nu există evaluări
  • Lab 10,11,12,13 BDC
    Lab 10,11,12,13 BDC
    Document19 pagini
    Lab 10,11,12,13 BDC
    Oleg Chian
    Încă nu există evaluări
  • Laboratorul 2
    Laboratorul 2
    Document15 pagini
    Laboratorul 2
    Tina Cris
    Încă nu există evaluări
  • Lab2 (TS)
    Lab2 (TS)
    Document7 pagini
    Lab2 (TS)
    Zeul Hriscei
    Încă nu există evaluări
  • Somipp Linux 1 UTM
    Somipp Linux 1 UTM
    Document10 pagini
    Somipp Linux 1 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • Laboratorul 1
    Laboratorul 1
    Document9 pagini
    Laboratorul 1
    Tina Cris
    Încă nu există evaluări
  • Laborator 1 Cucu Eugeniu
    Laborator 1 Cucu Eugeniu
    Document5 pagini
    Laborator 1 Cucu Eugeniu
    Cucu Eugen
    Încă nu există evaluări
  • Laboratorul 3
    Laboratorul 3
    Document12 pagini
    Laboratorul 3
    Tina Cris
    Încă nu există evaluări
  • SecrieruAndrei Amoo Lab5
    SecrieruAndrei Amoo Lab5
    Document6 pagini
    SecrieruAndrei Amoo Lab5
    andy secrieru
    Încă nu există evaluări
  • LL8 Mereuta Ana TI-192
    LL8 Mereuta Ana TI-192
    Document6 pagini
    LL8 Mereuta Ana TI-192
    Anya Mr
    Încă nu există evaluări
  • LL3 (Amoo)
    LL3 (Amoo)
    Document6 pagini
    LL3 (Amoo)
    Eric Semeniuc
    Încă nu există evaluări
  • Amoo 4
    Amoo 4
    Document5 pagini
    Amoo 4
    AlionaCrigan
    Încă nu există evaluări
  • SOMIPP Labs
    SOMIPP Labs
    Document107 pagini
    SOMIPP Labs
    Ionel Boaghe
    Încă nu există evaluări
  • Lucrare de Laborator nr.4 Florea Cristina
    Lucrare de Laborator nr.4 Florea Cristina
    Document9 pagini
    Lucrare de Laborator nr.4 Florea Cristina
    Cristina Florea
    Încă nu există evaluări
  • Somipplaba5 (Ru)
    Somipplaba5 (Ru)
    Document99 pagini
    Somipplaba5 (Ru)
    Maria Sevciuc
    0% (1)
  • LL4 BD
    LL4 BD
    Document6 pagini
    LL4 BD
    Anya Mr
    Încă nu există evaluări
  • Lab.6 FC
    Lab.6 FC
    Document3 pagini
    Lab.6 FC
    Cristina Florea
    Încă nu există evaluări
  • LL7 Baze de Date
    LL7 Baze de Date
    Document5 pagini
    LL7 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • Lab 1 Docx
    Lab 1 Docx
    Document6 pagini
    Lab 1 Docx
    AlexandruBotnaru
    Încă nu există evaluări
  • Examen PW
    Examen PW
    Document71 pagini
    Examen PW
    DorinRotaru
    Încă nu există evaluări
  • Lab3 AMOO
    Lab3 AMOO
    Document7 pagini
    Lab3 AMOO
    Сергей Борта
    Încă nu există evaluări
  • Somipp 2
    Somipp 2
    Document8 pagini
    Somipp 2
    Damean Alexandra
    Încă nu există evaluări
  • Lab4 (TS)
    Lab4 (TS)
    Document6 pagini
    Lab4 (TS)
    Zeul Hriscei
    Încă nu există evaluări
  • Lab3 TSA
    Lab3 TSA
    Document7 pagini
    Lab3 TSA
    Renat Rusu
    Încă nu există evaluări
  • Lucrare de Curs LFPC
    Lucrare de Curs LFPC
    Document19 pagini
    Lucrare de Curs LFPC
    Cristik95
    100% (1)
  • SQL Server
    SQL Server
    Document10 pagini
    SQL Server
    Jack Nilson
    100% (1)
  • 11.1 Functii Si Proceduri Stocate
    11.1 Functii Si Proceduri Stocate
    Document9 pagini
    11.1 Functii Si Proceduri Stocate
    Husker Dou
    Încă nu există evaluări
  • Laborator4 PLSQL An3
    Laborator4 PLSQL An3
    Document10 pagini
    Laborator4 PLSQL An3
    Procopie Gabi
    Încă nu există evaluări
  • Sem APEX
    Sem APEX
    Document18 pagini
    Sem APEX
    Stroe Andreea
    Încă nu există evaluări
  • Curs 8 SGBD - PLSQL Subprograme
    Curs 8 SGBD - PLSQL Subprograme
    Document19 pagini
    Curs 8 SGBD - PLSQL Subprograme
    Dariusu'
    Încă nu există evaluări
  • Triggeri Pe Baza de Date
    Triggeri Pe Baza de Date
    Document6 pagini
    Triggeri Pe Baza de Date
    Țone Florin Irinel
    Încă nu există evaluări
  • Despre SQL
    Despre SQL
    Document6 pagini
    Despre SQL
    Neacsu Denisa
    Încă nu există evaluări
  • BDC 9
    BDC 9
    Document6 pagini
    BDC 9
    Ion Boika
    Încă nu există evaluări
  • Proiect de Curs BDC
    Proiect de Curs BDC
    Document27 pagini
    Proiect de Curs BDC
    Ion Boika
    Încă nu există evaluări
  • Proiect de Curs BDC
    Proiect de Curs BDC
    Document27 pagini
    Proiect de Curs BDC
    Ion Boika
    Încă nu există evaluări
  • 3.2 Documentatia de Exploatare
    3.2 Documentatia de Exploatare
    Document2 pagini
    3.2 Documentatia de Exploatare
    Ion Boika
    Încă nu există evaluări
  • Documents - Tips Metode Numerice Probleme de Seminar Si Lucrari de Laborator
    Documents - Tips Metode Numerice Probleme de Seminar Si Lucrari de Laborator
    Document211 pagini
    Documents - Tips Metode Numerice Probleme de Seminar Si Lucrari de Laborator
    Ion Boika
    Încă nu există evaluări
  • 3 Elemente de Grafica Si Interfete Om Calculator
    3 Elemente de Grafica Si Interfete Om Calculator
    Document4 pagini
    3 Elemente de Grafica Si Interfete Om Calculator
    Ion Boika
    Încă nu există evaluări