我有一张有ntext
野外的桌子.MSDN表示ntext
已弃用,他们建议使用其他数据类型:
将来的Microsoft SQL Server版本中将删除ntext,text和image数据类型.避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序.请改用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)
,将现有值转换为新列,然后删除旧列.这花了很多时间(在我的数据集大约15GB,大约需要30分钟).这就是为什么我正在研究实现相同的其他可能性(可能就地=没有移动数据和转换).