ネットワーク越しのエクスポート/インポート

Windows認証を用いてローカルサーバのSQL Server 2005のテーブルデータをエクスポートし、

ネットワーク越しに別サーバのSQL Serverのテーブルにインポートする一例です。

諸々環境依存の所はありますが、その辺がクリアになっているとコマンドプロンプト上のみからで行えます。

bcp <データベース名>.<スキーマ名>.<テーブル名> out "<フルパスでファイル名>" -n -T

bcp <データベース名>.<スキーマ名>.<テーブル名> in "<フルパスでファイル名>" -n -S <インポートしたいサーバのIPとかホスト名> -T


テーブルデータを消したい場合は、同様にコマンドプロンプトから以下のようにしたり。

osql -E -S <サーバ名(ローカルなら[localhost])> -d <データベース名> -Q "TRUNCATE TABLE <スキーマ名>.<テーブル名>"

トランザクションログを消したい場合は、、、

osql -E -S <サーバ名(ローカルなら[localhost])> -d <データベース名> -Q "BACKUP LOG <データベース名> WITH TRUNCATE_ONLY"


データベースのエディションによっては使えない?

bcpコマンド及びosqlコマンドの詳細オプションはMSDNを参照してください。

osqlコマンドは未来のバージョンでは削除予定らしいので、sqlcmdコマンドの使用が推奨みたいです。