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

SQL Server, Konvertieren von NTEXT in NVARCHAR(MAX)

Wenn Sie keine geplante Ausfallzeit erhalten können....

Erstellen Sie zwei neue Spalten:nvarchar(max)processedflag INT DEFAULT 0

Erstellen Sie einen nicht gruppierten Index für das verarbeitete Flag

Ihnen steht UPDATE TOP zur Verfügung (Sie möchten Top nach Primärschlüssel geordnet aktualisieren).

Setzen Sie während des Updates einfach das "processedflag" auf 1, damit beim nächsten Update nur dort aktualisiert wird, wo das "processed"-Flag noch 0 ist

Sie können @@rowcount nach dem Update verwenden, um zu sehen, ob Sie eine Schleife verlassen können.

Ich schlage vor, WAITFOR nach jeder Aktualisierungsabfrage einige Sekunden lang zu verwenden, um anderen Abfragen die Möglichkeit zu geben, Sperren für die Tabelle zu erhalten und die Plattennutzung nicht zu überlasten.