0

我正在将大量空表迁移到 SQL Server 2008 中。

这些表是一个大逻辑表的垂直分区。

问题是这个逻辑表有超过 1024 列。

鉴于大多数字段为空,我计划使用稀疏表。

到目前为止,对于我所有的表,我一直在使用 SELECT...INTO,它运行得非常好。

但是,现在我有“创建表失败,因为表 'MyBigTable' 中的列 'xyz' 超过了 1024 列的最大值。”

有什么办法可以做 SELECT...INTO 以便它创建具有稀疏支持的新表?

4

2 回答 2

2

您可能想要做的是手动创建表并使用INSERT ... SELECT语句填充它。

要创建表,我建议编写不同的组件表并合并它们的定义,使它们都SPARSE成为必要的。然后只需运行您的单个CREATE TABLE语句。

于 2010-08-26T19:13:16.057 回答
0

你不能(而且可能无论如何都不想)。有关 MSDN 文档,请参阅INTO 子句 (TSQL)

问题是稀疏表是物理存储特性而不是逻辑特性,因此 DBMS 引擎无法知道复制该特性。此外,它是一个表范围的属性,并且 SELECT 可以有多个基础源表。请参阅我链接的页面的备注部分,其中讨论了如何仅使用默认组织详细信息。

于 2010-08-26T18:28:55.327 回答