CSV ファイルを BULK INSERT を使ってインポートする
CSV ファイルを SQL Server にインポート
アプリケーションを開発していると、ファイルから SQL Server にデータをインポートしなければならないことがあります。
ここでは CSV ファイルを BULK INSERT を使って SQL Server のテーブルにインポートする一番シンプルな方法をご紹介します。
まずデータを保存するテーブルを作りましょう。
以下のクエリーを実行して、Students という名前のテーブルを作ります。
CREATE TABLE Students (
StudentID INT NOT NULL PRIMARY KEY,
FirstName VARCHAR(50) NULL,
LastName VARCHAR(50) NULL,
BirthDay DATE NULL,
Gender CHAR(1) NULL
);
StudentID INT NOT NULL PRIMARY KEY,
FirstName VARCHAR(50) NULL,
LastName VARCHAR(50) NULL,
BirthDay DATE NULL,
Gender CHAR(1) NULL
);
インポートしたい CSV ファイルを用意します。
以下のデータを NewStudents.txt というファイル名で C ドライブの直下に保存しました。
1,Taro,Yamada,1980-02-15,M 2,Hanako,Tanaka,1979-12-30,F 3,Yuko,Suzuki,1979-07-07,F 4,Takao,Sato,1980-03-12,M
BULK INSERT を使って 先ほど作った Students テーブルにデータをインポートします。
FIELDTERMINATOR にはデータを区切る文字を設定します。 今回は CSV ファイルなのでコンマ ',' を指定しました。 タブ区切りの場合は '\t' を指定すれば OK です。
ROWTERMINATOR には1行の終わりを示す文字を指定します。
BULK INSERT Students
FROM 'c:\NewStudents.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
FROM 'c:\NewStudents.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
正しくインポートされたか確認します。
以下のクエリーを実行して、Students テーブルに正しくデータがインサートされたかチェックします。
SELECT *
FROM Students;
FROM Students;
データが Students テーブルに正しくインサートされていることが確認できました。