Sunteți pe pagina 1din 4

Triggers

Tabelul ArhivaStudent are următoarele câmpuri:


ID, Explicatie, DataOperatie. ID-ul se va completa automat.
1. Realizaţi un trigger care sa adauge in tabelul ArhivaStudent toţi studentii
ce vor fi adaugati in tabelul Cursant (Student).
2. Realizati un trigger care să permită actualizarea numelui studentilor din
tabelul Cursant (Student).
3. Realizaţi un trigger pentru tabela Cursant (Student) care să nu permită
ştergerea studentilor din orasul Bucuresti.
4. Realizaţi un trigger care sa nu permită modificarea numarului de ore
alocat unei discipline sub limita existentă în momentul actualizării.

1.
Create TRIGGER AdaugaCursant
ON Cursanti
AFTER INSERT
AS
BEGIN
INSERT INTO ArhivaStudent (Explicatie, DataOperatie)
SELECT 'S-a adaugat cursantul' + Nume, getdate()
FROM INSERTED
END
2.
CREATE TRIGGER ModificaCursant
ON Cursanti
AFTER UPDATE
AS
BEGIN
INSERT INTO ArhivaStudent (Explicatie,
DataOperatie)
SELECT 'S-a inlocuit numele ' +
Deleted.Nume + ' cu ' + Inserted.Nume,
getdate()
FROM deleted, inserted
END
3.
CREATE TRIGGER [dbo].[StergeCursant]
ON [dbo].[Cursanti]
AFTER DELETE
AS
BEGIN
IF EXISTS (SELECT Adresa FROM deleted WHERE
Adresa Like '%Bucuresti%')
BEGIN
rollback transaction
END
ELSE
BEGIN
INSERT INTO ArhivaCursanti(Explicatie,
DataOperatie)
SELECT 'S-a sters cursantul' + Nume,
getdate()
FROM deleted
END

END
4.

CREATE TRIGGER [dbo].[MODIFICARE_Discip] ON [dbo].


[Disciplina] FOR UPDATE AS

IF EXISTS(SELECT *
FROM DELETED, INSERTED
WHERE
DELETED.DisciplinaID=INSERTED.DisciplinaID
AND DELETED.Nrore>INSERTED.Nrore)
BEGIN
RAISERROR('NU SE POATE SUB MINIMUL ACTUAL',
18,2)
ROLLBACK TRANSACTION
END

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