超出最大行 SQL中的限制,每条记录的实际存储长度不能超过8060字节当你的表结构发生变化时,SQL就会做此检查,检查你创建的表,每个字段定义的长度之和是否超出8060字节,如果超出了,则会给出此警告 只要你实际往表中存储数据的时候,保证每条记录的总长度不超过此长度,可以完全不理会这个警告 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --示例--创建一个表create table tb(a varchar(8000),b varchar(8000)--因为a+b列定义的长度8000+8000=16000,已经超过了8060,此时会有警告 --实际插入记录insert tb values('a','b')--因为插入的数据,datalength('a')+datalength('b')=2 <8060,所以不会有问题--再插入记录insert tb select replicate('a',8000),replicate('b' ,100)--此时就会出问题了,这条记录的总长度超过了8060 贴:下表说明在 Microsoft SQL Server 数据库中定义的,或在 Transact-SQL 语句中引用的各种对象的最大值(数量或大小)。下表不包含 Microsoft® SQL Server 2000™ Windows® CE 版。 最大值(数量或大小) 对象 SQL Server 7.0 SQL Server 2000 批处理大小 65,536 * 网络数据包大小1 65,536 * 网络数据包大小1 每个短字符串列的字节数 8,000 8,000 每个 text、ntext、或 image 列的字节数 2 GB-2 2 GB-2 每个 GROUP BY、ORDER BY的字节数 8,060 每个索引中的字节数 900 9002 每个外键的字节数 900 900 每个主键的字节数 900 900 每行字节数 8,060 8,060 但是我定义的表字段总长度未超过8060啊,除了一个字段是nvarchar(4000)外,其它字段都很小 nvarchar(4000)!! --Unicode存储 一个好像是2字节 是的nvarchar(4000)就占了8000个字节,再加上其他列,你肯定是超过了8060 打开SQL2005的表时超级无敌地卡。。。卡卡。。。。 前一天的新注册用户总数、已完成邮箱认证的总数、未完成邮箱认证的总数、当日激活成功率。 SQL排序问题 请问 @@MAX_PRECISION 怎么用? 弱弱地问一下,这是为毛?关于镜像的问题 关于SQL SEVER累加的问题 数据库设计:估算首页访问量 一个视图,不知道怎么写。高手请教 sqlserver表中二进制数据无法进行表间复制 关于VB 的DATAGRID1的精华提问?girl perblom zjcxc(邹建)兄弟:如果这个东西你解决了,我真的佩服你了! 问大家一个大批量数据的解决方法.
create table tb(a varchar(8000),b varchar(8000)--因为a+b列定义的长度8000+8000=16000,已经超过了8060,此时会有警告 --实际插入记录
insert tb values('a','b')--因为插入的数据,datalength('a')+datalength('b')=2 <8060,所以不会有问题
--再插入记录
insert tb select replicate('a',8000),replicate('b' ,100)--此时就会出问题了,这条记录的总长度超过了8060
下表说明在 Microsoft SQL Server 数据库中定义的,或在 Transact-SQL 语句中引用的各种对象的最大值(数量或大小)。下表不包含 Microsoft® SQL Server 2000™ Windows® CE 版。 最大值(数量或大小)
对象 SQL Server 7.0 SQL Server 2000
批处理大小 65,536 * 网络数据包大小1 65,536 * 网络数据包大小1
每个短字符串列的字节数 8,000 8,000
每个 text、ntext、或 image 列的字节数 2 GB-2 2 GB-2
每个 GROUP BY、ORDER BY的字节数 8,060
每个索引中的字节数 900 9002
每个外键的字节数 900 900
每个主键的字节数 900 900
每行字节数 8,060 8,060