SQL Server - BULK INSERT

提供: MochiuWiki : SUSE, EC, PCB

2024年11月10日 (日) 16:04時点におけるWiki (トーク | 投稿記録)による版 (BULK INSERTの例)

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

概要

SQL Serverにおいて、ユーザが指定した形式でデータベーステーブルまたはビューにデータファイルをインポートしたい時がある。
テキストファイルまたはCSVファイルをインポートする時、BULK INSERT文を使用する。

BULK INSERTの例

下記は、CSVファイル(カンマ区切り)をインポートする際の例である。

  • 文字コードがShift-JISの場合
 BULK INSERT T_Table
         FROM 'D:\UnicodeFile.txt'
         WITH (
                 DATAFILETYPE    = 'char',
                 FIELDTERMINATOR = ','
         );
 GO


  • 文字コードがUNICODEの場合 (SQL Server 2014 R2以前)
    ただし、SQL Server 2014 R2以前では、下記のクエリを実行しても UTF-8形式のファイルは取り込めない。
    (UTF-8固有の文字が無いUTF-8形式のファイルはインポートできる)
 BULK INSERT T_Table
         FROM 'D:\UnicodeFile.txt'
         WITH (
                 DATAFILETYPE    = 'widechar',
                 FIELDTERMINATOR = ','
         );
 GO


  • 文字コードがUTF-8の場合 (SQL Server 2014 R2以降)
    SQL Server 2014 R2以降では、UTF-8形式のファイルをインポートすることが出来る。
 BULK INSERT T_Table
         FROM 'D:\UnicodeFile.txt'
         WITH (
                 DATAFILETYPE    = 'char',
                 CODEPAGE        = '65001',
                 FIELDTERMINATOR = ','
         );
 GO