bcpコマンドはbooks online を参照するとたくさんのオプションがありますが、本サンプルでは、 bcpコマンドを使用してテーブルデータのエクスポートとインポート(csv形式、ネイティブ形式)を行う方法を掲載します。

動作確認は SQL Server 2005 Developer Edition で行っています。

1. テーブルデータをエクスポートする

次のサンプルでは、SQLサーバインスタンス名が w2k3svr で、データベース名、スキーマ名を含むテーブルがSampleDB.dbo.TestTable のデータをカンマ区切りのcsv形式のファイルとネイティブ形式にファイルとしてエクスポートする方法を示しています。このほかにフォーマットファイルなどをエクスポートしたり、クエリを使用してエクスポートするカラムを設定することもできます。

-- Unicodeでcsvファイルをエクスポートする.
-- セパレータは既定ではタブなので、-tオプションでカンマにしている
bcp SampleDB.dbo.TestTable out export.csv -w -t "," -T -S w2k3svr
-- ネイティブ形式でファイルをエクスポートする
bcp SampleDB.dbo.TestTable out export.bin -n -T -S w2k3svr

2.テーブルデータをインポートする

bcpでエクスポートしたファイルをインポートしています。

-- ネイティブ形式のファイルをインポートする
bcp SampleDB.dbo.TestTable in export.bin -n -e err.txt -T -S w2k3svr
-- Unicode,CSV形式ファイルのインポートする
-- セパレータがデータに含まれていると失敗します
bcp SampleDB.dbo.TestTable in export.csv -w -t ","  -e err.txt -T -S w2k3svr

3. まとめ

今回の説明は以上です。指摘点、あやまりなどがある場合はご指摘ください。