установить триггер SQL, чтобы заменить мой статус обновления - PullRequest
0 голосов
/ 08 марта 2012

Добрый день. Я хотел бы сделать триггер для замены этого запроса TSQL ниже. Моя попытка этого триггера (внизу) не работает. спасибо

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 Ответ

1 голос
/ 08 марта 2012

Не проверено, но должно выглядеть так:

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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...