Har du prøvet at indstille XACT_ABORT
til i starten af dit script?
SET XACT_ABORT ON
Ikke relateret, men kunne løkken ikke skrives som:
-- Continue looping while rows exist
WHILE EXISTS (SELECT 1 FROM [LINKEDSERVER].MasterDatabase.dbo.Logging WITH(NOLOCK)
WHERE [Date] < @ArchiveDate)
Eller endnu bedre, omskriv, så du ikke rammer den sammenkædede tabel to gange pr. loop-iteration.