- ベストアンサー
SQL SERVERバックアップ・インポート
- SQL SERVER ManagementStudioのインポート・エクスポートウィザードを使い、本番環境のSQL SERVERのデータを開発環境のSQL SERVERへ移動する方法について教えてください。
- 開発環境上のテーブルを一括削除し、本番環境のテーブルを一括インポートする際に、テーブル数やデータ量が多いため、本番環境の動作が悪くなることが懸念されます。バッチでデータ移行を行うことは可能でしょうか?
- 本番環境には閲覧権限しかないため、ストアドを作成するにはベンダーへの依頼が必要ですが、できれば避けたいと考えています。ストアドを使わずにデータ移行を行う方法はありますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
いろいろやりかたはあろうと思いますが 本番環境のサーバ名をSV01,データベース名をDB01, 開発環境のサーバ名をSV02,データベース名をDB02と仮定します。 SV02のManagement Studioでの作業 1 SV01とのリンクサーバを設定する サーバーオブジェクト内のリンクサーバーを右クリック 2 DELETE,INSERT のストアドを作成する。 CREATE PROCEDURE TestJOB AS BEGIN DELETE FROM TABL1 INSERT INTO TABL1 SELECT * FROM SV01.DB01.dbo.TABL1 END 3 SQLServerエージェントでTestJOBを実行するジョブを作成する。 SQLServerエージェントにはスケジュール機能があります。 ストアドを実行するコマンド USE [DB02] GO DECLARE @RC int EXECUTE @RC = [dbo].[TestJOB] GO 以上ですがそれぞれの、やりかたは検索してみてください。 ちなみに、リンクサーバの設定方法はhttp://www.dcns.ne.jp/~sk7n2jch/Acc02.html 参考までに。 と、ここまで書いてEXとはエクスプレスエディションのことですか? だとするとSQLServerエージェントは使用できないので sqlcmdを使用したバッチファイルを作成して、Windowsタスクスケジューラか フリーのスケジューラを利用するしかないです。 めも帳に上記ストアドを実行するコマンドを貼付け TestJOB1.sql で保存 同じくめも帳で下記参考バッチファイルを作成しTestJOB.bat で保存する。 @echo off echo ********* データ転送中です。 ********** sqlcmd -S SV02 -U ログインID -P パスワード -d DB02 -i C:\TestJOB1.sql pause ファイル名は任意です。拡張子.sql .bat に注意して下さい。
お礼
KHSSSK様 回答ありがとうございます。 なるほど、開発環境側にリンクテーブル張ってストアド作るとは、目からうろこです。 ストアドさえ作ってしまえば、バッチ関係はたぶん大丈夫だとおもいますので、来週あたり時間を作って実行してみます。 ありがとうございました。