• Drop the IF Update(...

    (Also drop the temp table.)

    Try something like this (untested as you didn't provide data...)

    DROP TRIGGER Sales.trig_Calculate_OrderProcessed;

    GO

    CREATE TRIGGER Sales.trig_Calculate_OrderProcessed ON Sales.Orders

    AFTER INSERT, DELETE

    AS

    BEGIN

    WITH A AS (

    SELECT empid

    , COUNT(orderid) totalOrders

    FROM Sales.Orders

    WHERE empid IN ( SELECT empid

    FROM Inserted

    UNION ALL

    SELECT empid

    FROM Deleted )

    GROUP BY empid

    )

    UPDATE Hr.Employees

    SET Employees.processedOrderCount = A.totalOrders

    FROM Hr.Employees

    INNER JOIN A ON A.empid = Employees.empid

    AND Employees.processedOrderCount <> A.totalOrders;

    END;