2013-10-30 35 views
7

宛先表の特定の列にCSVファイルの列を一括して挿入したい。 説明 - 宛先テーブルには、自分のcsvファイルよりも多くの列があります。だから、私は、BULK INSERTを使用して、csvファイルの列を正しいターゲット列に移動します。特定の列にBULK INSERT?

これは可能ですか?はいの場合、どうすればいいですか?彼らは、データが挿入されている場所を制御する方法をお見せしていないhttp://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/

http://www.codeproject.com/Articles/439843/Handling-BULK-Data-insert-from-CSV-to-SQL-Server

BULK INSERT dbo.TableForBulkData 
FROM 'C:\BulkDataFile.csv' 
WITH 
(
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n' 
) 

-

は、私は、チュートリアルとコードを見ました。

+0

コードを尋ねる質問は、解決されている問題の最小限の理解を示す必要があります。 **試みた解決策**、**なぜ彼らは働かなかった**、そして予想される結果を含める。 – showdev

+0

列を挿入するとどういう意味ですか?すべてのデータが必要なのですか?あなたはあなたが持っているものと、それをどうしたいのかを示すべきです。 –

+0

フォーマットファイルを使用する必要があります。 –

答えて

8

はい、これを行うことができます。最も簡単な方法は、ターゲットテーブルからデータを移動する列を列挙したビューをソースファイルに表示されている順序で作成することです。テーブルに直接ではなく、BULK INSERTをビューに追加します。

+0

うわー!これはどのように作動しますか ?上記のコードでmytableをmyviewに置き換えると、実際にCSVファイルから実際のテーブルにデータを移動しますか? – Steam

+0

である。それは確かになります。 – RBarryYoung

+0

ありがとうございます。すべてのオプションを調べた後、私はイライラしています。私はC#とssisのビットで行くつもりです。私はcsvファイルの代わりにSQL文に切り替えています。この代替方法を私に見せてくれてありがとう。その静的な、しかし知って良い。 – Steam