0

SQL Server を使用して、統計分析用のデータをローカルに保存しています。通常、数百の列を持つ csv ファイルからテーブルを作成します。列の名前と型を手動で指定するのは面倒なので、インポート ウィザードの「型の提案」を使用して正しい型を選択します。

これはほとんどの場合うまくいきますが、私の csv ファイルはしばしば「ぎざぎざの上端」を持っています (つまり、最初の千行または百万行の多くの列が空です。これらのファイルの多くは 1+ GB であり、したがって、サブセット結合を容易にするために SQL Server が必要です)。インポート ウィザードは最初の 1000 行までしか参照しないため、インポートに失敗する可能性があります。巧妙な回避策はありますか?

私が考えることができる解決策は、最後の千行ほどをファイルの先頭、ヘッダー行のすぐ下に移動することです。しかし、これらのファイルの一部は 1 GB 以上で数百万の行があるため、テキスト エディターでは実行できません。インポート ウィザードの裏をかく方法はありますか? それとも逆読み?または、最後の千行程度を移動しますか?

ありがとう!

4

2 に答える 2

0

期待どおりの結果が得られるまでスキップするヘッダー行を指定できます。

ヘッダー行をインクリメントして 1000 ほどスキップし、それを減らして、データの適切なプレビューが得られるまで、何も見逃していないことを確認します。このような大きなファイルでこれを試したことはありませんが、まともなマシンで動作しない理由がわかりません。

面倒なことを減らしたい場合は、単純なバッチ ファイルまたはコンソール アプリを使用して、これらのファイルから空白を削除できます。ファイル全体をメモリにロードしようとするのではなく、正しいテキストリーダーアプローチを使用して単一行を読み取っていることを確認してください。

于 2011-06-08T19:26:41.983 に答える
0

ウィザードでは設定できないようですが、完全な SSIS ソリューションとして設定すれば設定できます。および/または 1000 の行制限は SQL Server 2008 のバグです (R2 については不明)

詳しくはこちらをご覧ください

ある時点でこのサンプル行を自分で設定しましたが、いつ、どのバージョン/SP レベルを使用したか思い出せません。

于 2011-06-08T19:31:53.953 に答える