別サーバーへテーブルコピーこんにちはゲストさん。ManagementStudeoから、AD上のSQLSERVERへのアクセスは可能な状態にしております。自分なりに調べてみたのですが、データを丸ごとコピーする場合は、"bcp"コマンドを実行すれば可能なようですが、bcpコマンドで、サーバー間のコピーの方法が良くわかりませんでした。出来れば日々更新する為、データが変更されたレコードはUPDATE追加されたデータは、INSERTする事が理想です。※夜間のバッチ処理ですので、上記の方法が私の知識的に難しようであれば、テーブルを作り直ししてもよいと考えております。効率的な方法をご存じの方がいらっしゃいましたらアドバイスをお願いいたします。回答(5)ANo.5Siegrune>間違っているかもしれませんが、BCPを使う場合。>販売管理SV側で、bcpコマンドでバックアップファイルを作成・出力。>ADSV側で、出力されたバックアップファイルを読込と言う事で宜しいでしょうか?はい。いえ、>>お教え頂いたURLを拝見しましたが、イマイチ理解出来なかったため、最低限必要な書き方をお教え頂け>たら幸いです。いう感じでしたら、リンクサーバを使うほうがいいのかなあという気がしてきました。SERVER認証のほうをつかう。使用」のところを見てもらう。http://msdn.microsoft.com/ja-jp/library/ff772782.aspx#SSMSProcedureちょっとわかりにくいかも。下のサイトの手順でやってみる。http://d.hatena.ne.jp/haradago/20110125/p1ぐらいかな。・・・これで引っかかるようなら、どこがわからないか、あるいは、何を入力したか返信いれてください。(0)通報するANo.4toshih2000とりあえず、Microsoftのサイトに自習書があるので見てください。する方法が最善だと思われます。12:00:58お礼toshih2000様MSの自習書お教え頂きありがとうございます。いくつかダウンロードして見ましたが、低能な私でも理解出来そうでしたので、参考にさせて頂きます。(0)通報するANo.3SiegruneBCPは、1.販売管理サーバーでOUTパラメタをつけてデータベースから普通のファイルへ出力2.出力したファイルを社内開発用サーバーへコピー(ネットワークドライブで直接参照してもいいが4.が遅い)3.社内開発用サーバーで対象テーブルをtruncateまたはdelete(BCPではデータが変更された分はUpdateされたと思いますが削除された分が反映できないため)4.社内開発用サーバーでINパラメタをつけてデータベースへ普通のファイルから読み込むという処理になります。http://msdn.microsoft.com/ja-jp/library/ms162802.aspx参照。(本当は2008R2のに移動してもらったほうがいいけど。)なお、テーブルレイアウトの変更は両方のサーバに必要。他の方法としては、A)データベースをバックアップしてリストアする。他のテーブルは対象外なのでかえってやりにくい。(まあ、別のデータベースとしてリストアしてmerge文とdelete文使って・・・という方法はありますが)B)トランザクションレプリケーションするたぶんバッチ処理でなくリアルタイムになってしまうので論外。トランザクションログやディストリビューションデータベースのサイズなどもろもろを考慮する必要もある。C)スナップショットレプリケーションするこれは、時刻指定でコマンドを実行したときに全部入れ替えされるのでやり方としてはありと思いますが。販売管理サーバーに設定することが多いのと、知っておかないといけないことが大量なのと。D)リンクサーバを作ってSQLを実行する。これは、時刻指定で、deleteとmerge(またはinsert/update)命令を実行するだけ。トランザクションログがあふれないかどうかだけが気がかりですが。リンクサーバの作り方は下のURLあたりかな。http://technet.microsoft.com/ja-jp/library/ff772782.aspx権限設定で、はまる可能性はありますが、sqlのほうは、deleteもmergeも、テーブル名の指定で、リンクサーバ名.DB名.スキーマ名.テーブル名とするだけなので比較的簡単。簡単なのは、BCPかリンクサーバを使う方法でしょう。回答ありがとうございます。記載頂いた、URLを拝見しましたが、私にはハードルが高すぎて理解出来ませんでした。質問では、理想を描いてしまったため、根本的なSQLServerを理解していない私には厳しそうです。今まで、Accessのリンクテーブルを作成して必要なデータを抽出していたのですが、大量のデータのクエリをかけると販売管理システム自体が不安定になるため、上記のような事が出来ないかと考えておりました。販売管理側に大きな負荷がかからなければ、(ADサーバー側は負荷がかかって停止しても問題ありません。)全テーブルを作り直してもかまいません。あわせて、出来れば毎日深夜にその作業を行えれば、業務に支障が出る事は無いと思います。間違っているかもしれませんが、BCPを使う場合。販売管理SV側で、bcpコマンドでバックアップファイルを作成・出力。ADSV側で、出力されたバックアップファイルを読込と言う事で宜しいでしょうか?お教え頂いたURLを拝見しましたが、イマイチ理解出来なかったため、最低限必要な書き方をお教え頂けたら幸いです。私のイメージとしては、Mysqldumpみたいな事が出きれば現段階では良いと考えております。あつかましいお願いで申し訳ありませんが、よろしくお願いいたします。Serverの場合リンクサーバーの設定をすれば別サーバーのデータベースをリンクサーバー名.データベース名.スキーマ名.テーブル名とする事で通常のSQLで扱えるようになります。ServerでDROPとCREATEとINSERTを行う作業をプログラムを組んで実現されれば問題が少ないです。回答ありがとうございます。リンクサーバーの件も考えたのですが、どう変更してよいやら全く分からず。販売管理SV側には、閲覧権限しかないので、リンクサーバー構築も難しいのではと考えております。(0)通報するANo.1STICKY2006SQLServerなら、ストアドプロシージャに、そういう処理するSQL文を作っておいて、SQLServerのジョブのスケジュール設定で、毎日定時に実行してあげればいいと思いますよ。回答ありがとうございます。ほんと、初歩の初歩が分かってないのですいません。ストアドプロシージャーの作り方というか書き方が分かりません。ジョブスケジュールについては、購入した本に載っていたので、何とかなるかなと思いますが、T-SQLについてAmazonを探したのですが、分かりやすい本がなかったのでお手上げ状態です。販売管理SV側には、閲覧権限しか与えられてない為、ストアドも作成出来ないのではと考えています。素人以下の質問で申し訳ありませんが、良い方法が有ればお教え頂けましたら幸いです。VB2005とSQLServer2005のどちらも製品版をインストールしました。最近SQLサーバー言うものを知りました。SQLServer2000でイントラネットを組んでいます。Expressを始めて使っています。Reserved.掲載情報の著作権は提供元企業等に帰属します。