daybreaksnow's diary

私を私と呼びたい

[SQL Server]bcpコマンドでレコードをコピーする

本番機のプログラムに不具合があり、正しいレコードが生成されなかったため、検証機で正しいデータを作成し、データコピーを行いたい場合があった。

以下のコマンドで検証機のデータのダンプを取り、本番機へのデータコピー作業を行うことができた。

・export
bcp "select * from DB名.dbo.テーブル名 where hoge='XXX' " queryout "C:\hoge\bcp\hoge.dump" -n -S localhost -U username -P password

・import
bcp DB名.dbo.テーブル名 in ""C:\hoge\bcp\hoge.dump" -n -S localhost -U username -P password

引数について

  • n:

ネイティブ形式でダンプする。
「可能であれば、ネイティブ形式 (-n) を使用して、区切り記号の問題を回避します」、とあるので、つけたほうがよいだろう。
参考URL:http://msdn.microsoft.com/ja-jp/library/ms162802.aspx