sql – 将ntext转换为nvcharmax(max) – 获取大小限制

前端之家收集整理的这篇文章主要介绍了sql – 将ntext转换为nvcharmax(max) – 获取大小限制前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将现有的sql NText列更改为nvcharmax(max),并在大小限制上遇到错误.有大量的现有数据,其中有些超过了8k的限制,我相信.

我们正在寻找转换,以便该字段可在LINQ中搜索.

我试过的2x sql语句是:

update Table
set datanVarChar = convert(nvarchar(max),datantext)
where datantext is not null

update Table
set datanVarChar = cast(datantext as nvarchar(max))
where datantext is not null

我得到的错误是:

Cannot create a row of size 8086 which is greater than the allowable maximum row size of 8060.

这是使用sql Server 2008.

任何帮助赞赏,
谢谢.

更新/解决方案:

下面的标记答案是正确的,sql 2008可以在我的情况下将列更改为正确的数据类型,并且我们使用的LINQ利用应用程序没有任何戏剧:

alter table [TBL] alter column [COL] nvarchar(max)

我也被建议跟进:

update [TBL] set [COL] = [COL]

通过将数据从lob结构移动到表(如果长度小于8k)来完成转换,从而提高性能/保持正确.

解决方法

这很可能是因为列datanVarChar未定义为NVARCHAR(max)
要将列从NTEXT转换为NVARCHAR(MAX),请使用此项
alter table TBL alter column COL nvarchar(max)

它将同时对您的列中的数据进行转换

猜你在找的MsSQL相关文章