Mam tabelę z polem ntext
. MSDN mówi, że ntext
jest przestarzała i zaproponować inne typy danych:Zmień typ kolumny z ntext na varbinary (max)
ntext, text, and image data types will be removed in a future version of Microsoft SQL Server. Avoid using these data types in new development work, and plan to modify applications that currently use them. Use nvarchar(max), varchar(max), and varbinary(max) instead.
W moim konkretnym przypadku zdecydowano się włączyć varbinary(max)
. Próbowałem zmienić definicję tabeli, ale to nie zadziałało.
ALTER TABLE MyTable ALTER COLUMN MyColumn VARBINARY(MAX);
Jakie są możliwości, aby zmienić typ do varbinary(max)
? Próbowałem zmienić typ z ntext
->nvarchar(max)
, a następnie z nvarchar(max)
->varbinary(max)
, ale to nie jest możliwe (błąd: niejawna konwersja z typu danych nvarchar (max) na varbinary (max) nie jest dozwolona).
Jedynym działającym rozwiązaniem jest dodanie nowej kolumny typu varbinary(max)
, przekształcenie istniejącej wartości w nową kolumnę, a następnie upuszczenie starej kolumny. To zajmuje WAY ZA DUŻO czasu (w moim zestawie danych około 15GB zajmuje to około 30 minut). Właśnie dlatego badam inne możliwości osiągnięcia tego samego (prawdopodobnie w miejscu = bez przenoszenia danych i konwersji).
Tak, mam skompresowany tekst w tej kolumnie. –
Dziękuję za odpowiedź. Sądzę, że będziemy musieli przeprowadzić konwersję. –