2012-03-08 7 views
0

こんにちはこのTSQLクエリを以下のように置き換えるトリガを作りたいと思います。このトリガーでの私の試み(下)は機能していません。おかげ私の更新ステートメントから引き継ぐSQLトリガーを設定しました

UPDATE Diary 
SET    CasualLeaveTaken = 1 
WHERE  (DaysActivity = N'casual leave')and (CasualLeaveTaken =0) 

CREATE TRIGGER dbo.tgr_update_casualLeave ON dbo.diary 
AFTER INSERT, UPDATE 
AS 
BEGIN --Trigger 

IF UPDATE(DaysActivity) = 'casual leave' 
BEGIN 
    UPDATE Diary SET 
    CasualLeaveTaken = 1  
    WHERE 
and (CasualLeaveTaken =0) 


    DayID IN (SELECT Inserted.DayID 
      FROM Inserted LEFT JOIN Deleted ON Inserted.DayID = Deleted.DayID 
      WHERE COALESCE(Inserted.DaysActivity, '') <> COALESCE(Deleted.DaysActivity, '')) 
END 

END --Trigger 

答えて

1

にチェックマークが付いていないと交換が、それは次のようになります。それは完全に働いた

CREATE TRIGGER dbo.tgr_update_casualLeave ON dbo.diary 
FOR INSERT, UPDATE 
AS 
BEGIN --Trigger 

IF UPDATE(DaysActivity)  
    UPDATE Diary 
    SET CasualLeaveTaken = 1   
    FROM Diary D INNER JOIN inserted ON D.DayId = inserted.DayId 
    WHERE 
(D.CasualLeaveTaken =0) and (D.DaysActivity = 'casual leave') 
END --Trigger 
+0

感謝を – user1240661

関連する問題