SQL Server テーブルへCSVファイルをインポートしてみた
はじめに
SQL Server テーブルにCSVファイルのデータを一括インポートした際の備忘録です。
開発環境
OSはWindows 10 Home、データベースはMicrosoft SQL Server 2017 Developer Editionです。
CSVファイル
以下のフォーマットであることを前提とします。
商品名,数量,単価 りんご,1,100 みかん,4,60 ばなな,2,300
フォーマットファイルの作成
SQL Server の接続先インスタンス名を「$server」、対象データベース名を「$database」、対象テーブル名を「$table」、出力するフォーマットファイル名を「$formatfile」とし、Windows 認証で接続する場合は以下のコマンドを実行します。
> bcp dbo.$table format nul ` -S $server ` -d $database ` -f $formatfile ` -c -t "," -T
BULK INSERTの実行
対象テーブル名を「$table」、フォーマットファイル名を「$formatfile」、インポートするCSVファイルを「$csvfile」とした場合は以下のSQLを実行します。
BULK INSERT [dbo].[$table] FROM 'C:¥$csvfile' WITH ( FIRSTROW=2, FORMAT='CSV', FORMATFILE = 'C:¥$formatfile', CODEPAGE='932' );
CSVファイルとフォーマットファイルは絶対パスで記載する必要があります。