Vous êtes sur la page 1sur 2

RESTRICTII TRIGGERE

ALTER TABLE CategorieClient CREATE TRIGGER S5_7


ADD CONSTRAINT C_Cerinta2 ON Colaborator
FOR INSERT
CHECK (CodCategorie=1) AS
-- IF EXISTS (SELECT * FROM INSERTED WHERE LEN(Cod)<>3)
ALTER TABLE CONTRACT BEGIN
ADD CONSTRAINT c_cerinta33 RAISERROR ('Atentie!',10,10)
CHECK (ValoareContract>0) END
-- --
ALTER TABLE CONTRACT CREATE TRIGGER S5_8
ADD Observatii NVARCHAR(100) ON Colaborator
-- FOR DELETE
ALTER TABLE CONTRACT AS
ADD CONSTRAINT C_cerinta5 IF EXISTS (SELECT * FROM DELETED WHERE
CHECK (TipContract IN ('A','B','C')) YEAR(Data_Nasterii)=1982)
-- BEGIN
ALTER TABLE CONTRACT RAISERROR ('Nu se poate sterge in ma-ta',10,10)
ADD CONSTRAINT fk_cerinta7 ROLLBACK
FOREIGN KEY (CodClient) END
REFERENCES client (codclient) --
CREATE TRIGGER S5_9
ON Colaborator
FOR UPDATE
AS
IF EXISTS (SELECT * FROM INSERTED INNER JOIN DELETED
ON INSERTED.Cod=DELETED.Cod
WHERE INSERTED.Salariu<DELETED.Salariu)
BEGIN
RAISERROR ('Nu se poate micsora salariul!!!',10,10)
ROLLBACK
END

VIEW
CREATE VIEW S6_3 as
SELECT TOP (100) PERCENT Nume,Salariu
FROM Colaborator
WHERE Departament = 'Contabilitate'
ORDER BY Salariu DESC, Nume
--
CREATE VIEW S6_4 as
SELECT TOP (100) PERCENT Nume,
DATEDIFF (year, DataInceput, GETDATE()) as Vechime
FROM Colaborator
ORDER BY Vechime
--
ALTER VIEW S6_4 as
SELECT TOP (100) PERCENT Nume,
DATEDIFF (year, DataInceput, GETDATE()) as Vechime,
CASE
WHEN DATEDIFF (year, DataInceput, GETDATE())>=10 THEN 0.1
WHEN DATEDIFF (year, DataInceput, GETDATE())<10
AND DATEDIFF (year, DataInceput, GETDATE())>=5 THEN 0.05
ELSE 0
END AS SporVechime
FROM Colaborator
ORDER BY Vechime
--
CREATE VIEW S6_6 as
SELECT AVG(DATEDIFF (year, Data_Nasterii, GETDATE())) as VarstaMedie
FROM Colaborator
WHERE Departament = 'Contabilitate'
--

CREATE VIEW S6_7 as


SELECT Departament, COUNT (Cod) as Nr
FROM Colaborator
WHERE Salariu>=500
GROUP BY Departament
HAVING COUNT (Cod) >=5

RESTRICTII TRIGGERE VIEW

ALTER TABLE Nume Tabel CREATE TRIGGER Nume CREATE VIEW Nume AS
ADD CONSTRAINT Nume ON Tabel SELECT Tabel, Functie
Cerinta FOR INSERT FROM Tabel
AS WHERE Ce se Cere
CHECK Ce ni se cere IF EXISTS (SELECT * FROM GROUP BY Nume, departament etc
INSERTED WHERE Ce se cere) HAVING Ce sa contina
BEGIN
RAISERROR
('Atentie!',10,10) CREATE VIEW Nume AS
ALTER TABLE Nume Tabel END SELECT TOP (100) PERCENT
ADD CONSTRAINT Nume Nume,Salariu
Cerinta FROM Tabel
FOREIGN KEY (Tabel) WHERE Departament =
REFERENCES 'Contabilitate'
Tabel(Continut) ORDER BY Salariu DESC, Nume

Vous aimerez peut-être aussi