1. はじめに
2. コマンド
- エクスポート・インポート、それぞれのバッチファイルを作成
- csvファイル形式とする
- バッチファイルの実行結果はログファイルに出力する。
- 処理開始・完了メッセージ
- SQL実行結果(登録件数)の出力
(1) エクスポート
SET logFile=c:\temp\import.log
echo エクスポート開始 > %logfile%
bcp dbo.testTB1 OUT c:\temp\testTB1.csv -c -t, -S localhost\**インスタンス名** -U sa -P **パスワード** -d testDB >> %logFile%
bcp dbo.testTB2 OUT c:\temp\testTB2.csv -c -t, -S localhost\**インスタンス名** -U sa -P **パスワード** -d testDB >> %logFile%
pause "エクスポート完了。ログ出力先:" %logfile% "" >> %logfile%
exit
(2) インポート
SET logFile=c:\temp\export.log
echo インポート開始 > %logfile%
sqlcmd -Q "TRUNCATE TABLE dbo.testTB1;" -S localhost\**インスタンス名** -U sa -P **パスワード** -d sampleDB >> %logFile%
sqlcmd -Q "TRUNCATE TABLE dbo.testTB2;" -S localhost\**インスタンス名** -U sa -P **パスワード** -d sampleDB >> %logFile%
bcp dbo.testTB1 IN c:\temp\testTB1.csv -c -t, -S localhost\**インスタンス名** -U sa -P **パスワード** -d sampleDB >> %logFile%
bcp dbo.testTB2 IN c:\temp\testTB2.csv -c -t, -S localhost\**インスタンス名** -U sa -P **パスワード** -d sampleDB >> %logFile%
pause "インポート完了。ログ出力先:" %logfile% "" >> %logfile%
exit
3. メモ
- テーブルによってはインポート時に不要な初期値「0」?が入ったことある。
テーブル項目の構成が初期値「0」セットされたから。アプリ側が0値の処理に対応していなかったためと思われる。
インポート後もチェックは必要。