У меня есть таблица с полем ntext
. MSDN говорит, что ntext
устарело, и они предлагают другие типы данных:
Типы данных ntext, text и image будут удалены в следующей версии Microsoft SQL Server. Избегайте использования этих типов данных в новых разработках и планируйте модифицировать приложения, которые их используют в настоящее время. Используйте взамен nvarchar (max), varchar (max) и varbinary (max).
В моем конкретном случае было решено перейти на varbinary(max)
. Я пытался изменить определение таблицы, но это не сработало.
ALTER TABLE MyTable ALTER COLUMN MyColumn VARBINARY(MAX);
Каковы возможности изменить тип на varbinary(max)
? Я попытался изменить тип с ntext
-> nvarchar(max)
, а затем с nvarchar(max)
-> varbinary(max)
, но это невозможно (ошибка: неявное преобразование из типа данных nvarchar (max) в varbinary (max) не допускается).
Единственное рабочее решение - добавить новый столбец типа varbinary(max)
, преобразовать существующее значение в новый столбец и затем удалить старый столбец. Это занимает ОЧЕНЬ СЛИШКОМ МНОГО времени (в моем наборе данных около 15 ГБ это занимает около 30 минут). Вот почему я изучаю другие возможности для достижения того же (возможно, на месте = без перемещения данных и преобразования).