Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Archivieren von Daten zwischen verbundenen Servern – Transaktionsproblem

Haben Sie versucht, XACT_ABORT einzustellen am Anfang Ihres Skripts einschalten?

SET XACT_ABORT ON

Unabhängig, aber die Schleife konnte nicht geschrieben werden als:

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

Oder noch besser, schreiben Sie es so um, dass Sie die verknüpfte Tabelle nicht zweimal pro Schleifendurchlauf treffen.