【SQL】バルク・インサート ~Bulk Insert~

Bulk Insert

 * 一括でテーブルに挿入できる
 * しかも早い!!!

使用上の注意

 * 指定できるフィールド数は 1024 個まで
http://msdn.microsoft.com/ja-jp/library/ms188365.aspx
 * 取込元のファイルは、DBエンジンが動いてるマシンから参照出来ないとファイルが見つからないと怒られるらしい
http://d.hatena.ne.jp/babydaemons/20080514/1210723398
 * 権限があるので注意
 * 「bulkadmin」ロールが必要
http://msdn.microsoft.com/ja-jp/library/ms175915.aspx
http://www.pasokuma.net/windows/server/sqlserver/sqlserverbulkinsert.html
 * テーブルの項目とファイルの項目が合わないと、Bulk Insert できない

CSV ファイルを BULK INSERT を使ってインポートする

http://sql55.com/query/bulk-insert.php

サンプル

テーブル

CREATE TABLE [Company](
	[Code] [varchar](4) NOT NULL,
	[Name] [varchar](50) NOT NULL
)

CSVファイル「Company.csv

X001,Pony
X002,ToSeeBar
X003,SamSon
X004,Panason
X005,GooGirl
X006,Yahou

BULK INSERT

BULK INSERT Company
FROM 'c:\Company.csv'
WITH
(
   FIELDTERMINATOR = ',',
   ROWTERMINATOR = '\n'
);

-- 検証用
-- SELECT * FROM [Company]