• I think your case is about distributed transaction (linked server). If so, about your case, I think a restart is needed to complete the rollback.

    I guess, the difference is, rollback in a restart is a regular local one. Without restart, rollback is a process by Microsoft Distributed Transaction Coordinator (MS DTC). But I'm not so sure.

    BTW, it might not help, but I suggest you SET XACT_ABORT ON.

    GASQL.com - Focus on Database and Cloud