今天遇到这个错误。想知道是否有人可以告诉我这是什么意思:
无法对大小为 9522 的行进行排序,该行大于允许的最大值 8094。
那是8094字节吗?人物?领域?这是连接多个超过某个限制的表的问题吗?
今天遇到这个错误。想知道是否有人可以告诉我这是什么意思:
无法对大小为 9522 的行进行排序,该行大于允许的最大值 8094。
那是8094字节吗?人物?领域?这是连接多个超过某个限制的表的问题吗?
在 SQL 2000 中,行限制为 8K 字节,与内存中的页面大小相同。
[编辑]
在 2005 年,页面大小相同(8K),但数据库使用页面中行上的指针来指向包含更大字段的其他页面。这允许 2005 克服 8K 行大小的限制。
似乎吸引了很多人的问题是,您可以创建一个根据定义保存超过 8K 数据的表,并且它可以接受它。并且该表可以正常工作,直到您实际尝试将超过 8K 的数据插入表中。
因此,假设您创建了一个表,其中包含一个整数字段、主键和 10 个 varchar(1000) 字段。该表在大多数情况下都可以正常工作,因为您填写所有 10 个 varchar(1000) 字段的次数很少。但是,即使您尝试在每个字段中放置 1000 个字符,它也会给您这个问题中提到的错误。
仅供参考,如果它是由删除可变长度列后需要回收的空间引起的,则在您的数据库上运行此 SQL 命令可以解决问题:
DBCC CLEANTABLE (0,[dbo.TableName])
这曾经是 SQL 2000 中的一个问题,但我认为这在 2005 年已解决。
8094 字节。
如果您列出有关您正在做什么的更多信息,它可能会帮助我们找出实际原因。