T-SQL:SELECT INTO稀疏表?

时间:2010-08-26 18:11:21

标签: tsql sql-server-2008 sparse-matrix select-into

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

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

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

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

到目前为止,对于我的所有表格,我一直在使用SELECT ... INTO,它一直运作良好。

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

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

2 个答案:

答案 0 :(得分:2)

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

要创建表,我建议编写不同组件表的脚本并合并它们的定义,并根据需要将它们全部SPARSE。然后运行您的单CREATE TABLE语句。

答案 1 :(得分:0)

你不能(也可能不想)。有关MSDN文档,请参阅INTO Clause (TSQL)

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