Bạn đã thử đặt XACT_ABORT
chưa
ở đầu tập lệnh của bạn?
SET XACT_ABORT ON
Không liên quan, nhưng không thể viết vòng lặp là:
-- Continue looping while rows exist
WHILE EXISTS (SELECT 1 FROM [LINKEDSERVER].MasterDatabase.dbo.Logging WITH(NOLOCK)
WHERE [Date] < @ArchiveDate)
Hoặc thậm chí tốt hơn, hãy viết lại để bạn không nhấn vào bảng được liên kết hai lần mỗi lần lặp lại vòng lặp.