• 締切済み

SQLServerのデータベース間でデータコピー

こんにちは。SQLServer2000(SP3a)、VB6.0(SP5)でデータベースの勉強をしています。用語に詳しくないので、うまく説明できないと思いますが、相談にのってください。 SQLServerに、「データベースA」と「データベースB」があり、VBのコマンドボタンをクリックすると、データベースAのテーブル1のデータをそのままデータベースBのテーブル1に移動させたいと思っています。 私の知識では、データベースAのテーブル1のデータをSelectですべて読み込み、変数などに入れておき、データベースBのテーブル1にInsertするという効率の悪い方法しか思い浮かばず、レコード数が多いので、時間がかかり困っています。 他に良い方法があればアドバイスをお願いします。 よろしくお願いします。

みんなの回答

noname#11722
noname#11722
回答No.2

単純にコピーするならSQLServerにSQL流すだけで出来ませんか? INSERT INTO [DB_B].[dbo].[TABLE1] SELECT * FROM [DB_A].[dbo].[TABLE1] てな感じで、データベース名から完全修飾で指定します。 VB側が何で繋がっているかはわかりませんが、 Execute系のメソッドないですか? あればそれでSQL文投げてやってください。 これなら、サーバー側だけでデータ移動出来たはず。

izumi_charis
質問者

お礼

VBはADOで接続しています。データベース名.dbo.テーブル名で移動できるのですか!?(@_@)同じデータベースなら、Insert~Selectで出来ますが、違うデータベースは試したことがないので、やってみます。ありがとうございます。

noname#25230
noname#25230
回答No.1

私やったことは無いのですが、SQL Serverには、データベース間のデータ転送を行うDTSという機能があります。これをVBから操作できればよいのですよね。 DTS Package Object Library あたりで検索してみられてはいかがでしょうか?(すみません、時間がなくて試すことはできそうにありません)。 検索の結果、 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/dtsprog/dtspapps_4aeb.asp こんなページとかも引っかかりますので、このあたりを手繰っていってもらえればよいかと。

izumi_charis
質問者

お礼

早速のご回答ありがとうございます。DTSをさっそく調べてみます。ありがとうございました。

関連するQ&A