• Why not try three different triggers rather than using one ?

    If you insist on making just one trigger based on all events, here is what you can do inside the trigger:

    IF EXISTS(SELECT * FROM inserted) AND EXISTS(SELECT * FROM deleted)

    BEGIN

    EXEC PROC_FOR_UPDATE

    END

    IF EXISTS(SELECT * FROM inserted) AND NOT EXISTS(SELECT * FROM deleted)

    BEGIN

    EXEC PROC_FOR_INSERT

    END

    IF NOT EXISTS(SELECT * FROM inserted) AND EXISTS(SELECT * FROM deleted)

    BEGIN

    EXEC PROC_FOR_DELETE

    END