今天遇到了这个错误。想知道是否有人可以告诉我这意味着什么:
无法对大小为9522的行进行排序,大于允许的最大值8094。
这是8094字节吗?人物?场?加入多个超出某些限制的表是一个问题吗?
答案 0 :(得分:10)
在SQL 2000中,行限制为8K字节,与内存中的页面大小相同。
[编辑]
在2005年,页面大小相同(8K),但数据库使用页面中行的指针指向包含更大字段的其他页面。这允许2005年克服8K行大小限制。
答案 1 :(得分:7)
似乎抓住很多人的问题是,您可以创建一个表,根据定义,它可以容纳超过8K的数据,并且它会接受它。并且该表将正常工作,直到您实际尝试将超过8K的数据插入表中。
因此,假设您创建一个包含主键的整数字段和10个varchar(1000)字段的表。该表在大多数情况下都能正常工作,因为填充所有10个varchar(1000)字段的次数非常少。 Howerver,即使你试图在你的每个字段中放置1000个字符,它也会给你这个问题中提到的错误。
答案 2 :(得分:3)
这篇文章在尝试解释它(在SQL 2005的上下文中)做得很公平:
http://www.consortioservices.com/Blog/2008/02/28/MaximumRowSizeInSQLServer2005ToTheLimit.aspx
答案 3 :(得分:2)
仅供参考,在数据库上运行此SQL命令可以解决问题,如果它是由丢弃可变长度列后需要回收的空间引起的:
DBCC CLEANTABLE (0,[dbo.TableName])
答案 4 :(得分:0)
那曾经是SQL 2000中的一个问题,但我认为这是在2005年修复的。
答案 5 :(得分:0)
8094字节。
如果列出一些有关您正在做的事情的更多信息,可能有助于我们找出实际原因。