SQL SERVER 2008 在某表中新增一列时失败

本文介绍了一个关于SQL表行大小超出限制的问题及解决方案。当表中列过多或数据类型占用空间过大时,可能会遇到行大小超过8060字节的限制。文章提供了解决方法,例如调整数据类型来降低每行数据的占用空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:新增列语句如:“alter table 表名 add 列名 float default 0 with values”(用VS2010做网站,这句话是在C#代码里执行的)


报错提示:

  警告: 已经创建表 'xxxx',但是它的最大行大小超过了允许的最大字节数 8060。如果得到的行超过此大小限制,则对此表的 INSERT 或 UPDATE 操作将失败。
  不能创建大小为 8066 的行,该大小大于所允许的最大行大小 8060。


原因:这是因为超过了最大行容量的限制,比如有1000列,全是float(8字节),这就8000字节了,马上就超了,再新增列的时候可能就无法新增列了,就会提示上述错误,以上说的是用代码新增列,手动可能可以新增。


解决办法:改变现有列的数据类型,比如float改为decimal(8,2),nvarchar(1000)改为(500)等 。

转载于:https://www.cnblogs.com/chakyu/p/7406782.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值