11

今天遇到这个错误。想知道是否有人可以告诉我这是什么意思:

无法对大小为 9522 的行进行排序,该行大于允许的最大值 8094。

那是8094字节吗?人物?领域?这是连接多个超过某个限制的表的问题吗?

4

5 回答 5

10

在 SQL 2000 中,行限制为 8K 字节,与内存中的页面大小相同。

[编辑]

在 2005 年,页面大小相同(8K),但数据库使用页面中行上的指针来指向包含更大字段的其他页面。这允许 2005 克服 8K 行大小的限制。

于 2008-08-19T19:39:20.510 回答
7

似乎吸引了很多人的问题是,您可以创建一个根据定义保存超过 8K 数据的表,并且它可以接受它。并且该表可以正常工作,直到您实际尝试将超过 8K 的数据插入表中。

因此,假设您创建了一个表,其中包含一个整数字段、主键和 10 个 varchar(1000) 字段。该表在大多数情况下都可以正常工作,因为您填写所有 10 个 varchar(1000) 字段的次数很少。但是,即使您尝试在每个字段中放置 1000 个字符,它也会给您这个问题中提到的错误。

于 2008-08-19T20:33:35.097 回答
2

仅供参考,如果它是由删除可变长度列后需要回收的空间引起的,则在您的数据库上运行此 SQL 命令可以解决问题:

DBCC CLEANTABLE (0,[dbo.TableName])

请参阅:http: //msdn.microsoft.com/en-us/library/ms174418.aspx

于 2010-03-30T19:00:15.797 回答
0

这曾经是 SQL 2000 中的一个问题,但我认为这在 2005 年已解决。

于 2008-08-19T19:35:17.867 回答
0

8094 字节。

如果您列出有关您正在做什么的更多信息,它可能会帮助我们找出实际原因。

于 2008-08-19T19:37:06.660 回答