J'ai une base de données organisationnelle dans laquelle chaque employé a une clé étrangère à son patron (FID).SQL Trigger récursif mise à jour
Table déclaration:
Create Table Emp(
ID integer,
FID integer,
SALARY integer,
Primary key (ID),
foreign key (FID) references EMP
);
Le déclencheur SQL suivante devrait mettre à jour les employés sous un patron. Et puis mettre à jour leurs enfants récursivement. mais il ne met à jour qu'un seul niveau.
CREATE TRIGGER SAL_TRIG ON EMP After UPDATE
as
declare @SALARY int
declare @OLDSAL int
declare @ID int
--use the 'inserted' keyword to access the values inserted into the invoice table
select @OLDSAL = Salary from deleted
select @SALARY = Salary from inserted
select @ID = ID from inserted
BEGIN
UPDATE EMP
SET SALARY = salary + @SALARY - @OLDSAL
WHERE FID = @ID
END
Je veux savoir comment résoudre ce problème. Merci.