SQL Serverに対して大量のデータを高速にインポートする方法として、「bcpユーティリティ」を使う方法があります。
bcpはWindowsのコマンドプロンプトからコマンドを実行することで利用できます。
この記事ではbcpの使い方をまとめます。
エクスポート
基本的な構文は下記の通りです。ファイルはテキストファイルとして保存します。
bcp テーブル名 out 保存先パス -c -S サーバー名 -U ユーザ名 -P パスワード -d データベース名
(例)bcp Person out "Person.txt" -c -S ServerName -U UserName-P PassWord -d DbName
上記の例ではテーブルのデータすべてをエクスポートします。
特定のデータのみエクスポートしたい場合は、下記のようにSELECT文を記述します。
(例)bcp "SELECT * FROM Person WHERE Age >= 30" queryout "Person.txt" -c -S ServerName -U UserName-P PassWord -d DbName
テーブル名をSELECT文にし、out を queryout にすることで、特定のデータをエクスポートできます。
インポート
基本的な構文は下記の通りです。
bcp テーブル名 in インポートファイルパス -c -S サーバー名 -U ユーザ名 -P パスワード -d データベース名
インポートファイルは列をタブ区切りのテキストファイルである前提です。
インポートファイルはbcpでエクスポートするか、テキストファイルにSSMSからコピペしてもOKです。
(例)ID, Name, Age の3列のPersonテーブル
1 永野芽衣 21
2 本田翼 28
3 戸田恵梨香 32
(例)bcp Person in "Person.txt" -c -S ServerName -U UserName-P PassWord -d DbName
実行して、「○行コピーされました。」とメッセージが返れば成功です。

環境に応じたオプションの変更
文字コード
テキストファイルの文字コードによって、オプションを変更する必要があります。
Shift-JIS
Shift-JIS の場合は、-c のままでOKです。
Unicode(UTF-16)
UTF-16 の場合は、-c を -w にする必要があります。
(例)bcp Person in "Person.txt" -w -S ServerName -U UserName-P PassWord -d DbName
UTF-8
UTF-8 の場合は、bcp では利用することができません。
そのため、UTF-16 か Shift-JIS に変換する必要があります。
SQL Server 認証 / Windows 認証
SQL Server 認証の場合は、上記の構文の通りでOKです。
Windows 認証の場合は、-U と -P は必要なく、-T を使います。
(例)bcp Person in "Person.txt" -c -S ServerName -T -d DbName