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

如何在SQL Server 2008中创建宽表?它的使用限制是什么?

  •  12
  • MikeJ  · 技术社区  · 15 年前

    我在读 Maximum Capacity Specifications for SQL Server 我看到一张宽桌子的名称。它不同于标准表,标准表最多可以有30000列,而普通(窄)表只限于更熟悉的1024列。我在谷歌上搜索了一张宽桌子,但似乎什么都没找到。这个新表类型有更正式的名称吗????

    那么,为什么我们有两种不同类型的表,您如何创建这个特殊的表,以及使用这个表的限制是什么,这些表似乎可以保存更多的数据?知道吗?

    5 回复  |  直到 11 年前
        1
  •  10
  •   Scott Ivey    15 年前

    宽表是使用列集和稀疏列的表。它仍然遵循每行相同的宽度限制(8019字节)-所以通常只在列大部分都为空时使用它。

    有关更多信息,请参阅此处…

        2
  •  4
  •   Tom H    15 年前

    “若要创建或将表更改为宽表,请添加 column set 到表定义。”

    here

        3
  •  3
  •   HLGEM    15 年前

    但你通常不想这样做!行有大小限制,检索数据的速度可能比使用相关表(甚至是具有一对一关系的表)慢。我从来没有见过这样一个实例,它比相关表更好。

        4
  •  2
  •   Josh Yeager    11 年前

    另一个限制是宽表不适用于事务复制或合并复制。请参阅下面的“支持稀疏列的SQL Server技术”部分: http://msdn.microsoft.com/en-us/library/cc280604(v=sql.105).aspx

        5
  •  1
  •   bummi Haisum Usman    11 年前
    CREATE TABLE [UR_DB].[dbo].[DesiredTableName]
    (DocID int PRIMARY KEY,
    Title varchar(200) NOT NULL,
    ProductionSpecification varchar(20) SPARSE NULL,
    ProductionLocation smallint SPARSE NULL,
    MarketingSurveyGroup varchar(20) SPARSE NULL,
    MarketingProgramID int SPARSE NULL,
    SpecialPurposeColumns XML COLUMN_SET FOR ALL_SPARSE_COLUMNS);
    

    Creating Complex Test Databases - Creating a Table with more than 1,024 Columns