SQL 视图的更新触发器条件

If condition of Update Trigger of SQL view

如果我有一个名为 Task 的 table,其中包含以下列:

table有观点。除了 PercentComplete (int) 之外,该视图具有与任务 table 相似的列。相反,它具有 Completed(位)。

视图有更新触发器。这是视图更新触发器的片段

IF 
    UPDATE (Completed)

BEGIN
    UPDATE Task
    SET PercentComplete = CASE Completed
            WHEN 1
                THEN 100
            ELSE 0
            END
        ,Userstamp = inserted.Userstamp
        ,Timestamp = getDate()
    FROM inserted
END

这按预期工作。但是现在我需要为项目列添加一个条件。

例如,如果项目 = 'MyProject',则只更新 table。所以像:

IF 
    UPDATE (Completed) and inserted.Project = 'MyProject'

BEGIN
    UPDATE Task
    SET PercentComplete = CASE Completed
            WHEN 1
                THEN 100
            ELSE 0
            END
        ,Userstamp = inserted.Userstamp
        ,Timestamp = getDate()
    FROM inserted
END

如何实现?

谢谢

我认为您需要做的只是一个内部连接和一个简单的 where 案例。

UPDATE T
SET PercentComplete = CASE Completed
        WHEN 1 THEN 100
        ELSE 0
    END
    ,Userstamp = inserted.Userstamp
    ,Timestamp = getDate()
FROM Task AS T
INNER JOIN INSERTED AS I
    ON I.ID = T.ID
WHERE I.Project = 'Your Project'