Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Archivage des données entre serveurs liés - problème de transaction

Avez-vous essayé de définir XACT_ABORT activé au début de votre script ?

SET XACT_ABORT ON

Sans rapport, mais la boucle ne pourrait-elle pas être écrite comme :

-- Continue looping while rows exist
WHILE EXISTS (SELECT 1 FROM [LINKEDSERVER].MasterDatabase.dbo.Logging WITH(NOLOCK) 
              WHERE [Date] < @ArchiveDate)

Ou encore mieux, réécrivez afin de ne pas toucher la table liée deux fois par itération de boucle.