2009-12-19 54 views
0

我有一個組織數據庫,其中每個員工都有一個外鍵給它的老闆(FID)。SQL觸發器遞歸更新

表聲明:

Create Table Emp(
    ID integer, 
    FID integer, 
    SALARY integer, 
    Primary key (ID), 
    foreign key (FID) references EMP 
); 

以下SQL觸發器應老闆下更新的員工。然後遞歸更新他們的孩子。但它只更新一個級別。

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 

我想知道如何解決這個問題。 謝謝。

回答