T-SQL:スパーステーブルに選択しますか?
-
01-10-2019 - |
質問
大量の大量の空のテーブルをSQL Server 2008に移行しています。
テーブルは、1つの大きな論理テーブルの垂直パーティションです。
問題は、この論理テーブルには1024以上の列があることです。
ほとんどのフィールドがnullであることを考えると、スパーステーブルを使用する予定です。
これまでの私のすべてのテーブルについて、私はselect ... intoを使用しています。これは非常にうまく機能しています。
ただし、テーブル「mybigtable」の列「xyz」が最大1024列を超えるため、「作成テーブルの作成が失敗しました。」
私が選択できる方法はありますか...それがまばらなサポートで新しいテーブルを作成するようにしますか?
解決
おそらくやりたいことは、テーブルを手動で作成し、 INSERT ... SELECT
声明。
テーブルを作成するには、さまざまなコンポーネントテーブルをスクリプト化して定義をマージし、それらをすべて作成することをお勧めします SPARSE
必要に応じて。次に、シングルを実行します CREATE TABLE
声明。
他のヒント
あなたはできません(そしておそらくとにかくしたくないでしょう)。見る 節(tsql)に MSDNドキュメント用。
問題は、スパーステーブルが物理ストレージ特性であり、論理的な特性ではないため、DBMSエンジンがその特性をコピーすることを知る方法はないことです。さらに、これはテーブル全体のプロパティであり、選択には複数の基礎となるソーステーブルを持つことができます。デフォルトの組織の詳細のみを使用する方法について説明した場所でリンクしたページの備考セクションを参照してください。
所属していません StackOverflow