5

まず、一般に幅の広い列を多数持つことは悪い考えであることはわかっていますが、これは私が制約を受けている形式です。

CSV ファイルを操作してデータベースに値を挿入/更新する前に、CSV ファイルをステージング テーブルにインポートするアプリケーションがあります。ステージング テーブルはその場で作成され、ファイルがインポートされる可変数の NVARCHAR 列と、行 ID として使用される 2 つの INT 列を持ちます。

インポートする必要がある特定のファイルの 1 つは、幅が約 450 列です。大きな NVARCHAR 列で使用される 24 バイトのポインターを使用すると、これは私の計算では約 10k になり、エラーが発生します。Cannot create a row of size 11166 which is greater than the allowable maximum row size of 8060.

これを回避する方法はありますか、それともインポーターを変更してインポートを分割するか、ファイルから列を削除する唯一の選択肢ですか?

4

4 に答える 4

2

詳細については、次のリンクを参照してください。

SQL Server の最大列制限 1024 および 8kb のレコード サイズを回避する

また

http://msdn.microsoft.com/en-us/library/ms186939(v=sql.90).aspx

于 2014-01-11T12:42:52.130 に答える
0

Varchar または nvarchar (Max) が適切なソリューションであり、おそらくうまくいくことに同意しますが、完全性を期すために、1 対 1 の関係を持つ 2 つのテーブルを使用して複数のテーブルを作成することもお勧めします。

于 2014-01-11T14:30:15.697 に答える