bcpコマンドでDBのデータとテキストデータを高速に出し入れできる。コンソールから使用する。
以下、DBからテキストへ(TestテーブルからC:\temp\test.txtを作成)
bcp ParentInvestigation.dbo.Test out "C:\temp\test.txt" -c -S .\SQLEXPRESS -U sa -P sa
以下、テキストからDBへ(C:\temp\test.txtからTestテーブルへデータを読み込み)
bcp ParentInvestigation.dbo.Test in "C:\temp\test.txt" -c -S .\SQLEXPRESS -U sa -P sa
テストなどでテーブル単位でのデータ移行などをする時にTruncateコマンドと組み合わせて利用すると便利。
下記詳細
BCPコマンドのオプションについての詳細
BCPコマンドには、さまざまなオプションが用意されており、用途に応じて適切なオプションを使用することで、より効率的にデータのインポートやエクスポートが可能となる。
-c
オプション: データを文字データ形式で扱う際に使用。各フィールドは可変長で、区切り文字や改行を認識してテキストデータを扱う。-S
オプション: 接続するSQL Serverのインスタンス名を指定。ローカルインスタンスの場合、.\SQLEXPRESS
などのように使用する。-U
オプション: ユーザー名を指定。SQL Serverに接続するためのユーザーアカウントを指定。-P
オプション: パスワードを指定。-U
で指定したユーザー名に対応するパスワードを入力する。BCPコマンドの一般的な使用例
例えば、大量のデータを外部システムからインポートしてDBに取り込む際や、DBのバックアップを簡単にテキスト形式で取得しておきたい場合に役立つ。データをシンプルなテキストファイル形式で保持できるため、他のシステムへの移行やテストデータとしての利用が容易になる。
エラー処理やログ出力
BCPコマンドを実行する際、エラーが発生した場合や、実行結果を記録するためにログを出力することが可能。これには-e
オプションを使用してエラーログファイルを指定する。
bcp ParentInvestigation.dbo.Test out "C:\temp\test.txt" -c -S .\SQLEXPRESS -U sa -P sa -e C:\temp\error.log
ファイルフォーマットの定義
データのインポートやエクスポート時に、データのフォーマットを明示的に定義したい場合は、-f
オプションを使用してフォーマットファイルを指定することができる。この機能を使うことで、カスタマイズされた形式でデータのやり取りが可能になる。