ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

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' 
);