代码之家  ›  专栏  ›  技术社区  ›  TheSmurf

SQL Server最大行大小

  •  11
  • TheSmurf  · 技术社区  · 17 年前

    今天遇到了这个错误。想知道是否有人能告诉我这意味着什么:

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

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

    5 回复  |  直到 17 年前
        1
  •  10
  •   JeremiahClark    17 年前

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

    [编辑]

    2005年,页面大小相同(8K),但数据库使用页面行上的指针指向包含较大字段的其他页面。这使得2005能够克服8K行大小的限制。

        2
  •  7
  •   Kibbee    17 年前

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

    因此,假设您创建了一个表,其中包含一个整数字段作为主键,以及10个varchar(1000)字段。该表在大多数情况下都能正常工作,因为您填充所有10个varchar(1000)字段的次数将非常少。然而,即使你试图在每个字段中输入1000个字符,它也会给你这个问题中提到的错误。

        3
  •  3
  •   JeremiahClark    17 年前

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

    DBCC CLEANTABLE (0,[dbo.TableName])
    

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

        4
  •  2
  •   Kevin Albrecht    15 年前

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

        5
  •  0
  •   AndyMan    17 年前

    8094字节。

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

        6
  •  0
  •   Redbaron    17 年前