修改数据库表字段报 不能创建大小为 8070 的行,该大小大于所允许的最大行大小 8060。

HunderKiller 2012-09-10 03:39:53
修改数据库表字段
alter table dbo.TB_Object alter column Note text null
报以下错误:
不能创建大小为 8070 的行,该大小大于所允许的最大行大小 8060。

字段原来的类型是nvarchar(4000)
使用中,客户反映4000不够长,就想改为text,谁知竟然报错

求高手指导
...全文
1100 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
HunderKiller 2012-09-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
同一行非大数据字段的总长度不能超过8060,放到其他表再update回来就行了
[/Quote]
搞定,给分了,多谢各位大侠!
phineux 2012-09-25
  • 打赏
  • 举报
回复
同一行非大数据字段的总长度不能超过8060,放到其他表再update回来就行了
HunderKiller 2012-09-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
而且现在对这个表查询所有就会报以下错误:
消息 64,级别 20,状态 0,第 0 行
在从服务器接收结果时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 指定的网络名不再可用。)
但是可以对表进行备份select * into tb_tempt from TB_Object
表有1353行数据,查询所有的时候查到1275条就卡住了
会不会是数据的问题导……
[/Quote]
卡住确实是网络的问题
zhangyangziwo 2012-09-10
  • 打赏
  • 举报
回复
网络不好哦
HunderKiller 2012-09-10
  • 打赏
  • 举报
回复
而且现在对这个表查询所有就会报以下错误:
消息 64,级别 20,状态 0,第 0 行
在从服务器接收结果时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 指定的网络名不再可用。)

但是可以对表进行备份select * into tb_tempt from TB_Object
表有1353行数据,查询所有的时候查到1275条就卡住了
会不会是数据的问题导致不能修改字段长度?
HunderKiller 2012-09-10
  • 打赏
  • 举报
回复
不管是改成nvarchar(max)还是text,ntext都报同样的错误:

消息 511,级别 16,状态 1,第 1 行
不能创建大小为 8070 的行,该大小大于所允许的最大行大小 8060。

语句已终止。
HunderKiller 2012-09-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你改成nvarchar(max)行不?另外,如果要换text,要改成ntext
[/Quote]

不行,不管是nvarchar(max)还是ntext都报错:
消息 511,级别 16,状态 1,第 1 行
不能创建大小为 8070 的行,该大小大于所允许的最大行大小 8060。

语句已终止。
孤独加百列 2012-09-10
  • 打赏
  • 举报
回复
如果非要是TEXT的话,先改成NVARCHAR(MAX),再改成TEXT。
汤姆克鲁斯 2012-09-10
  • 打赏
  • 举报
回复
SQL77 2012-09-10
  • 打赏
  • 举报
回复
楼主应该是SQL2K。是警告还是报错了?如果是警告只是后面插入或者修改超过范围的话会出错。

最好升级成2K5以上方便操作大文本类型。
  • 打赏
  • 举报
回复
改成ntext试试
發糞塗牆 2012-09-10
  • 打赏
  • 举报
回复
你改成nvarchar(max)行不?另外,如果要换text,要改成ntext

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧