Tengo una tabla que tiene el campo ntext
. MSDN dice que ntext
es obsoleto y se sugieren otros tipos de datos:Cambiar el tipo de columna de ntext a 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.
En mi caso particular, se decidió cambiar a varbinary(max)
. Traté de alterar la definición de la tabla pero eso no funcionó.
ALTER TABLE MyTable ALTER COLUMN MyColumn VARBINARY(MAX);
¿Cuáles son las posibilidades de cambiar el tipo de varbinary(max)
? He intentado cambiar el tipo de ntext
->nvarchar(max)
y luego de nvarchar(max)
->varbinary(max)
pero eso no es posible (error: la conversión implícita del tipo de datos nvarchar (max) a varbinary (max) no está permitido).
La única solución de trabajo es agregar una nueva columna de tipo varbinary(max)
, convertir el valor existente a la nueva columna y luego soltar la columna anterior. Esto toma MUCHO MUCHO tiempo (en mi conjunto de datos de aproximadamente 15 GB tarda unos 30 minutos). Es por eso que estoy investigando otras posibilidades para lograr lo mismo (posiblemente in situ = sin mover datos y conversiones).
Sí, tengo texto comprimido en esa columna. –
Gracias por la respuesta. Supongo que tendremos que ejecutar la conversión. –