[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