创建表时提示maximum row size (16029) exceeds the maximum number of bytes per row (8060)!

highscore2 2006-03-15 02:42:38
Create Table temp(
uid int,
a varchar(8000),
b varchar(8000)
)

当表的字段长度总和>8060时会提示
Warning: The table 'temp' has been created but its maximum row size (16029) exceeds the maximum number of bytes per row (8060). INSERT or UPDATE of a row in this table will fail if the resulting row length exceeds 8060 bytes.

请问是否我更新长度超过8060数据就不能更新?? 有什么方法可以解决?

...全文
353 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lalakid 2006-03-17
  • 打赏
  • 举报
回复
HOHO,SQL SERVER 2000中,行是不能跨页存储的,
没想到盖子在20005中居然改善了
佩服盖子
zjcxc 元老 2006-03-17
  • 打赏
  • 举报
回复
上面说的是sql 2000及以前的版本.

在sql 2005中, 一个数据页虽然还是8K, 但已经支持一条记录跨多个数据页, 所以就不会存在这个问题. 下面这个完全没有问题.

Create Table temp(
uid int,
a varchar(8000),
b varchar(8000)
)

zjcxc 元老 2006-03-17
  • 打赏
  • 举报
回复
sql 的限制, 1条记录最长只能有8K数据, 如果你能保证实际存储的数据中, uid+a+b 的总长度不超过8060字节, 则可以放心使用.

否则你得选择把其中一列变为 text/ntext 列


由于sql的一个数据而最多8K, 一条记录不能跨数据而, 所以上面的限制无法解决的.
highscore2 2006-03-17
  • 打赏
  • 举报
回复
继续up,希望雏老大来看一下
highscore2 2006-03-15
  • 打赏
  • 举报
回复
没办法设置可以update更长吗?
-狙击手- 2006-03-15
  • 打赏
  • 举报
回复
分若干个字段
li_d_s 2006-03-15
  • 打赏
  • 举报
回复
用text/image类型
yesyesyes 2006-03-15
  • 打赏
  • 举报
回复
是的,分为若干个表

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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