У меня была похожая проблема здесь SQL Server, преобразование NTEXT в NVARCHAR (MAX) , что было связано с изменением ntext на nvarchar (max).
Я должен был сделать UPDATE MyTable SET MyValue = MyValue
, чтобы заставить его правильно все изменить.
Это очевидно занимает довольно много времени с большим количеством записей. Было несколько предложений, как лучше это сделать. На первом ключе был временный флаг, обозначенный, если это было сделано, или нет, а затем обновлялось несколько тысяч за раз в цикле, пока все не было сделано. Это означало, что у меня был «некоторый» контроль над тем, сколько он делал.
С другой стороны, если вы действительно хотите максимально сократить базу данных, это может помочь, если вы превратите модель восстановления в простую, сократите журналы транзакций, реорганизуете все данные на страницах, а затем установите их вернуться к полной модели восстановления. Однако будьте осторожны, сокращение баз данных, как правило, нежелательно, и если вы уменьшаете модель восстановления действующей базы данных, вы просите что-то не так.