Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server, conversione di NTEXT in NVARCHAR(MAX)

Se non riesci a ottenere i tempi di inattività programmati....

crea due nuove colonne:nvarchar(max)processedflag INT DEFAULT 0

Crea un indice non cluster su processflag

Hai UPDATE TOP a tua disposizione (vuoi aggiornare il top ordinato dalla chiave primaria).

Imposta semplicemente il flag processato su 1 durante l'aggiornamento in modo che il prossimo aggiornamento si aggiorni solo dove il flag processato è ancora 0

Puoi usare @@rowcount dopo l'aggiornamento per vedere se puoi uscire da un ciclo.

Suggerisco di utilizzare WAITFOR per alcuni secondi dopo ogni query di aggiornamento per dare ad altre query la possibilità di acquisire blocchi sulla tabella e non sovraccaricare l'utilizzo del disco.