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

SQL Server, Conversion de NTEXT en NVARCHAR(MAX)

Si vous ne pouvez pas obtenir de temps d'arrêt programmé...

créer deux nouvelles colonnes :nvarchar(max)processedflag INT DEFAULT 0

Créer un index non clusterisé sur le processingflag

Vous disposez de UPDATE TOP (vous souhaitez mettre à jour le top trié par la clé primaire).

Définissez simplement l'indicateur de traitement sur 1 lors de la mise à jour afin que la prochaine mise à jour ne soit mise à jour que lorsque l'indicateur de traitement est toujours à 0

Vous pouvez utiliser @@rowcount après la mise à jour pour voir si vous pouvez sortir d'une boucle.

Je suggère d'utiliser WAITFOR pendant quelques secondes après chaque requête de mise à jour pour donner aux autres requêtes une chance d'acquérir des verrous sur la table et de ne pas surcharger l'utilisation du disque.