CSVファイルからのBULK INSERT
CSVファイルからSQL ServerのTableへ高速でデータを投入する
私用場面は色々あるが、とりあえず、スキーマ間でデータを移動する場合を想定します。
復元もとDBからデータを抽出するためのSQLをファイルに記載します。
output.sql
SET NOCOUNT ON ; SELECT * FROM [dbo].[MyTable];
コマンドラインからSqlファイルのSQLを実行し、CSVファイルに吐き出します。
SQLCMD -S localhost -U sa -P {password} -d {dbname} -i output.sql -s, -W -h -1 -o output.csv
出力されたファイルを復元先DBからアクセス可能なパスにおいてBulk Insertを実行します。
bulk insert dbo,MyTable from '\\c\work\output.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' );