XACT_ABORT
を設定してみましたか?
スクリプトの開始時にオンにしますか?
SET XACT_ABORT ON
無関係ですが、ループを次のように書くことはできません:
-- Continue looping while rows exist
WHILE EXISTS (SELECT 1 FROM [LINKEDSERVER].MasterDatabase.dbo.Logging WITH(NOLOCK)
WHERE [Date] < @ArchiveDate)
または、ループの反復ごとにリンクされたテーブルを 2 回ヒットしないように書き直してください。