加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:32:53 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试将现有的SQL NText列更改为nvcharmax(max),并在大小限制上遇到错误.有大量的现有数据,其中有些超过了8k的限制,我相信. 我们正在寻找转换,以便该字段可在LINQ中搜索. 我试过的2x SQL语句是: update Tableset dataNVarChar = convert(nvarchar(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)

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读