0

ほとんど空のテーブルを大量に SQL Server 2008 に移行しています。

テーブルは、1 つの大きな論理テーブルの垂直パーティションです。

問題は、この論理テーブルに 1024 を超える列があることです。

ほとんどのフィールドが null であるため、スパース テーブルを使用する予定です。

これまでのすべてのテーブルで、SELECT...INTO を使用してきましたが、これは非常にうまく機能しています。

ただし、「テーブル 'MyBigTable' の列 'xyz' が最大 1024 列を超えているため、CREATE TABLE が失敗しました。」

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 に答える