No veo cómo está vinculando esas filas que se insertaron/actualizaron en Inserted
pseudo tabla a las filas en sus Projects
mesa. Debería haber algo como
inserted.ID = projects.ID
o algo así en el WHERE
cláusula:
UPDATE p
SET
p.date_complete = GETDATE()
FROM
dbo.Projects p
INNER JOIN
inserted i ON inserted.id = projects.id
WHERE
i.status = 'Completed'
AND p.date_complete = '1900-01-01'