我在MSDN上看这个页面:
Maximum Capacity Specifications for SQL Server 2008
它说:
每个“非全”表的最大列数:1,024
每个“宽”表的最大列数:30,000
但是我找不到有关SQL 2008中“宽”和“非宽”表之间差异的任何信息。如果我想定义一个“宽”表,我该怎么做?
答案 0 :(得分:9)
答案 1 :(得分:4)
我会说差异大约是28,976列。
答案 2 :(得分:4)
请务必注意,您的固定和可变长度数据总数仍限制为8019字节。只能在数据的MOST为空的稀疏表中支持能够做到这种疯狂的额外大量列。否则,您最终会得到超过8019字节的行,最终会出现不适合的rowdata,或溢出到扩展行数据(与普通数据页相比维护起来非常昂贵)。
Karen Delaney有一本非常好的书,它有很多内部功能和SQL Server限制,标题为SQL Server 2008 Internals。如果你真的进入了低级别的限制以及如何在SQL Server中完成工作,这是一个很棒的阅读。在某些情况下,它将增加您对SQL Server在字节级到磁盘下的功能的深入了解。
答案 3 :(得分:3)
另一个区别是宽表不适用于事务或合并复制。请参阅此处的“支持稀疏列的SQL Server技术”部分: http://msdn.microsoft.com/en-us/library/cc280604(v=sql.105).aspx