• On second look it seems like everything is coded to slow down updates:

    WAITFOR DELAY '00:00:01'

    What is it for?

    SELECT @orderNumber=PARTSMANUFACTURING.M01_PRODUCTIONORDERNUMBER

    FROM PARTSMANUFACTURING,INSERTED

    WHERE PARTSMANUFACTURING.M01_PRODUCTIONORDERNUMBER=INSERTED.M01_PRODUCTIONORDERNUMBER;

    1. This works fine for single record update only.

    2. why join to PARTSMANUFACTURING since all you fetch is M01_PRODUCTIONORDERNUMBER? It's the same as:

    SELECT @orderNumber=M01_PRODUCTIONORDERNUMBER FROM INSERTED

    After all this, trigger executes external java program without parameters, which presumably scans the whole temp table, so a single record update takes some seconds.